Как стать автором
Обновить
1072.79

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Период
Уровень сложности

Библиотека Frontend-разработчика, часть 4: Алгоритмы

Время на прочтение4 мин
Количество просмотров15K

Frontend-разработчик в головах многих ассоциируется с разработкой, которая не требует сильных трудозатрат и хорошей математической подготовки. Если с первым еще можно поспорить, то со вторым - тут в точку. Математика на старте вряд ли пригодится разработчику интерфейсов, ибо ее просто негде использовать. Но это на старте.

Как и любой разработчик - True Frontend'eр должен расти в своей сфере, и конечно же, уходить от простой разработки интерфейсов к чему-то более сложному.
На фоне недавно нашумевшего сериала, можно выписать такой тезис - разработка, как игра в шахматы - неинтересно играть с тем, кто ниже рангом также, как и неинтересно всю жизнь делать одно и тоже одной сложности.
Всегда хочется лезть в дебри, повышать свой уровень. И там где дебри, начинается математика, структуры данных, алгоритмы. Хотите оптимизировать загрузку - это вам к алгоритмам. Хотите увеличить скорость отображения элементов на странице - необходимо обратиться к математике и алгоритмам. Возможно сортировка пузырьком элементов была лишней...

Отдельное слово хочу сказать о структурах данных - несмотря на то, что в js полный беспорядок в плане типов - всегда есть ts, где структуры данных - это основа основ. Для этого ts и был сделан. Контролировать беспорядок.

Ну и напоследок - любая активность мозга в направлении алгоритмов непременно ведет к увеличению скорости выполнения задач и прокачиванию навыка писать хороший поддерживаемый код. Вы сами увидите, как после ста задач на том же leetcode вы сможете быстро подбирать зарекомендованное решение.

Следующее, что стоить отметить - собеседования. И на собеседованиях часто требуют решить какую-нибудь простецкую задачку сворованную с очных собеседований из компании с красно-белым лого. После некоторого времени алгоритмической подготовки такие задачки будут для любого разработчика проще некуда.

Это статья о том, что алгоритмы разработчику нужны. Это статья о том, что по алгоритмам есть интересные и нескучные книжки, которые помогут быстро понять основы и прокачать свои hard-skills.

Ну, удиви

PHP 8 продолжает развитие опенсорсного языка программирования

Время на прочтение4 мин
Количество просмотров3.8K

Первое за последние годы крупное обновление широко распространенного языка веб-программирования PHP принесло нам новые фичи, которые могут помочь еще больше увеличить его распространенность и востребованность.

На заре эпохи интернета опенсорсный язык программирования PHP был в самом центре всей веб-разработки. Его новый релиз 8.0 стремиться сделать его более актуальным для нового поколения разработчиков.

Увидевший свет 25 лет назад, PHP представляет букву «P» в стеке LAMP (Linux, Apache, MySQL, PHP), который определил первое поколение веб-разработки. В последние годы другие языки, включая Python и JavaScript, начали превосходить PHP в популярности, в то время как новые языки, такие как Go и Rust, также очень быстро развиваются.

Однако PHP не сидит сложа руки, пока другие языки развиваются. PHP 8.0, который стал широко доступен в День благодарения (26 ноября), объединяет в себя ряд новых возможностей, в том числе механизм JIT-компиляции, который повышает производительность по сравнению с предыдущими версиями PHP.

Другие улучшения включают оптимизации языка, которые несомненно принесут пользу разработчикам, включая именованные аргументы и атрибуты.

Читать далее

Приложение для конвертирования jpg файлов в pdf файл

Время на прочтение2 мин
Количество просмотров7.8K

Здравствуйте, читатели моего блога. Сегодня я расскажу про программы, которые помогут при конвертации большого числа рисунков или фотографий формата jpg или bmp в файл pdf.

Данный способ очень хорош тем, что сохраняет качество изображений и позволяет конвертировать и упаковывать огромное количество файлов.

Аналогичных программ в интернете не так много и, в основном, они платные.

Разработать такой способ вынудило меня острая необходимость. Так как мне часто приходится работать с большим количеством файлов, которые необходимо структурировать с сохранением качества.

А те программы, которые бесплатные имеют ряд ограничений по количеству конвертируемых файлов и по качеству конвертации.

Представленные программы очень полезны для людей, занимающихся написанием книг, составлением огромных презентаций и вёрсткой литературы и другой бумажной продукции.

Программы написаны на языке python

Всего программ две.
Первая программа конвертирует файлы jpg в файлы формата pdf. Все сконвертированные файлы собираются в отдельную папку. Качество файлов не изменяется.

Здесь нам понадобиться модуль os и PI

Читать далее

Intel ControlFlag — система машинной отладки человеческих ошибок кода

Время на прочтение2 мин
Количество просмотров1.8K
Человеку, как известно, свойственно ошибаться. Самые вопиющие ошибки попадают в учебники, а с миллионами остальных нам приходится как-то жить и тратить свой рабочий ресурс на их исправление. По подсчетам исследователей из Университета Пенсильвании, на отладку кода уходит порядка 50% бюджета разработки ПО. Это чудовищно много, но надежда у человечества все-таки есть — будущее за машинными дебаггерами. На прошедшей совсем недавно конференции Intel Labs Day Intel представила ControlFlag — аналитическую систему машинного программирования, способную самостоятельно обнаруживать ошибки в программном коде.


Читать дальше →

Цифровая трансформация Service Desk глазами PM

Время на прочтение10 мин
Количество просмотров3K
Несколько историй из моей практики – о проблемах в направлении Service Desk (SD) и их решении путем запуска проекта автоматизации по Scrum.


Читать дальше →

Аудит чат-ботов

Время на прочтение6 мин
Количество просмотров2.8K


В настоящее время чат-боты широко распространены в различных сферах бизнеса. Так, например, банки с их помощью могут оптимизировать работу своего контактного центра, мгновенно отвечая на популярные вопросы клиентов и предоставляя им справочную информацию. Для клиентов чат-боты также являются удобным инструментом: гораздо проще написать вопрос в чате, чем ожидать ответа, звоня в контактный центр.
Читать дальше →

Flutter. Слушатель клавиатуры без платформенного кода

Время на прочтение8 мин
Количество просмотров7.1K
Всем привет! Меня зовут Дмитрий Андриянов, я Flutter-разработчик в Surf.

В предыдущей статье про RenderObject я рассказал, как немного копнул в слой рендеринга и смог получать расположение и размеры любого виджета — даже динамического. Сегодня расскажу, как был написан слушатель появления/скрытия клавиатуры без нативного кода.


Читать дальше →

Жизнь в одну строчку

Время на прочтение5 мин
Количество просмотров2.8K

Если уменьшение размера бинарников Go на 6% - это то, в чем вы отчаянно нуждаетесь, то эта статья для вас. (Я проводил этот эксперимент в рамках помощи Tailscale. Следует отметить, что я инвестор.) Если же вас не сильно заботит размер двоичных файлов, что ж, может быть, вам хотя бы будет интересно почитать это для развлечения.

Чтобы получить примерные цифры для этой статьи, я взял первый попавшийся файл из моего GOPATH. Все конкретные цифры в этой статье относятся к github.com/mvdan/sh/cmd/shfmt. После нескольких экспериментов, они кажутся мне довольно репрезентативными.

В качестве базового комита я использую коммит 9d812cfa5c тулчейна Go. Это ветка master по состоянию на 29 апреля 2020 г.; вероятно, он будет схож с версией Go 1.15beta1. Я использую его, а не Go 1.14, потому что он включает в себя несколько сокращений размера бинарников, в том числе одно конкретное, которое вам обязательно понадобится, если для вас важен размер.

Читать далее

Почему SOLID – важная составляющая мышления программиста. Разбираемся на примерах с кодом

Время на прочтение14 мин
Количество просмотров11K
Привет! Меня зовут Иван, я сотрудничаю со львовским офисом EPAM как Solution Architect, а карьеру в IT начал 10 лет назад. За это время заметил, что многие любят работать на проектах, которые начинаются с нуля. Однако не всем удается построить систему, которую будет все еще легко поддерживать и развивать спустя год.

Вполне естественно, что вместе с разрастанием системы будет повышаться и ее сложность. Успех разработки такой системы будет зависеть от того, насколько хорошо вы держите под контролем ее сложность. Для достижения этой цели существуют дизайн-паттерны, лучшие практики, а главное – принципы проектирования, такие как SOLID, GRASP и DDD.

В данной статье я хочу акцентировать внимание на том, что SOLID – важная составляющая мышления разработчика, которую нужно развивать и тренировать.

Я покажу несколько примеров с кодом, где нарушаются принципы SOLID. Мы выясним, к каким последствиям это может привести в долгосрочной перспективе и как это можно исправить. На мой взгляд, статья будет интересна как back-end, так и front-end разработчикам разных уровней.


Читать дальше →

Деконструкция LSP

Время на прочтение5 мин
Количество просмотров5.6K

Здравствуйте, меня зовут Дмитрий Карловский. А вы на канале Core Dump, где мы берём разные темы из компьютерной науки и деконструируем их по полочкам. А на этот раз мы начнём деконструировать принципы SOLID начиная с наиболее конкретного.


В далёком 1987 году Барбара Лисков сформулировала принцип разработки имени себя.


Liskov Substitution Principle

Он позволяет понять правильно вы написали полиморфный код или нет. Но прежде чем его сформулировать нам надо разобраться с некоторыми понятиями, которые входят в определение..


Видео запись этого разбора.

Читать дальше →

История о физическом удалении 300 миллионов записей в MySQL

Время на прочтение3 мин
Количество просмотров4.8K

Введение


Привет. Я ningenMe, веб-разработчик.

Как сказано в названии, моя история — это история о физическом удалении 300 миллионов записей в MySQL.

Я заинтересовался этим, поэтому решил сделать памятку (инструкцию).

Начало — Alert


В пакетном сервере, который я использую и обслуживаю, имеется регулярный процесс, который один раз в день собирает данные за последний месяц из MySQL.

Обычно этот процесс завершается примерно в течение 1 часа, но в этот раз он не завершался 7 или 8 часов, и alert не переставал вылазить…
Читать дальше →

Бесплатные онлайн-мероприятия по разработке (15 сентября – 23 сентября)

Время на прочтение4 мин
Количество просмотров2K

Нажимайте на интересующую вас тему и откроется подробная информация о мероприятии.

Читать далее

Ближайшие события

Как не закопаться в рефакторинге на фронте. Советы новичку

Время на прочтение6 мин
Количество просмотров5.6K
С тех пор как вам доверяют не только кодить под строгим контролем, но и принимать даже минимальные решения, вы становитесь в полной мере ответственны за будущее проекта. В том числе, за стоимость его последующей поддержки. Имея опыт с действительно долгосрочными историями, мы собрали несколько советов о том, как не “стрелять в ноги” себе, своим коллегам и тем, кто придет на проект после вас.

Бывалым наши советы могут показаться очевидными. А вот новичкам настоятельно рекомендуем к прочтению. Потратьте время на воплощение этих идей в своих проектах, чтобы потом не тратить еще больше на бесконечный рефакторинг.

Сходные идеи можно высказать практически в любой сфере разработки, но мы будем говорить о них на примере проектов на React-е.

image
Читать дальше →

Кому рецепты для электронной коммерции? Для SAP Commerce и не только

Время на прочтение16 мин
Количество просмотров6.1K
Моё хобби ― автоматизация онлайн-ритейла. Уже много лет даже в свои выходные я не вылезаю из этого «болота». Да, наверное, это звучит дико и даже смешно. Как можно увлекаться таким скучным делом? — скажут одни. Что там увлекаться, это просто какая-то частная тема для уважающего себя архитектора ПО! — скажут другие.

Действительно, на первый взгляд, это, как говорится, недиссертабельная тема. Фактически, это сборная солянка из разных тем, тем или иным образом притащенных в e-commerce. И в итоге оказалась ровно тем, что я люблю: интеграция технологий.

И вот с 2016 я веду техноблог, hybrismart.com. Такая «хабра» в миниатюре, только на английском и с фокусом на близкую мне тему — разработку на SAP Commerce. У нас тут сформировалась небольшая компания из нескольких десятков тысяч авторов, но в блог пока что пишет только часть из них. Ну, хорошо, пишут пока немногие. Десяток. Но мы стараемся. В блоге уже накопилось под две сотни статей, преимущественно больших и очень больших на самые разные темы, тем или иным боком относящиеся к ecom. В существенной части это всё-таки персональный блог, поэтому отдуваюсь тут я, а не наша пиар-служба. Но это от души, правда.

Как легко догадаться из названия, hybrismart — про хайбрис (что это такое?). И почти все, кто его находит, знают о хайбрисе не понаслышке. Ну и наоборот: наверное, каждый разработчик на hybris хотя бы раз в блог заходил (конечно, не по доброй воли, нам гугл помогает!). Теперь вот и вы зашли. И чтобы вы там не потерялись, хочу провести небольшую экскурсию. Задавайте, пожалуйста, вопросы в самом конце.

Читать дальше →

MVI и SwiftUI – одно состояние

Время на прочтение10 мин
Количество просмотров7.9K

Представим, нам нужно внести небольшую правку в работу экрана. Экран меняется каждую секунду, поскольку в нем одновременно происходит множество процессов. Как правило, чтобы урегулировать все состояния экрана, необходимо обратиться к переменным, каждая из которых живет своей жизнью. Держать их в голове либо очень трудно, либо вовсе невозможно. Чтобы найти источник проблемы, придется разобраться в переменных и состояниях экрана, да еще проследить, чтобы наше исправление не поломало что-то в другом месте. Допустим, мы потратили уйму времени и все-таки внесли нужную правку. Можно ли было решить эту задачу проще и быстрее? Давайте разбираться.

Читать дальше →

Методика проектирования архитектурных слоев на основе анемичной модели и DDD

Время на прочтение11 мин
Количество просмотров13K
В результате выполнения методики будут выделены архитектурные слои с максимальной специализацией по уровням прикладных задач и разделением ответственности по SRP.

Система (программный продукт) в процессе своего развития расширяет свой функционал. Рост числа пользователей и распространение системы увеличивают требования к стабильности и расширяемости системы. Однажды команда разработки может столкнуться с архитектурными ограничениями, которые не позволяют системно организовать реализацию нового функционала.

Как следствие, это выражается:

  • в непредсказуемости сроков разработки
  • большим временем локализации ошибок
  • увеличением требования к квалификации разработчиков и сложной заменяемости

Но как выйти на другой уровень качества приложения и разработки?

Если сравнивать архитектуру систем с архитектурой зданий, то на определённом этапе, переполненную хрущёвку надо превратить в небоскрёб. Методика описывает то, КАК это сделать.

image
Читать дальше →

Перенос процесса BPMN из IBM BPM в Camunda — пошаговое руководство

Время на прочтение6 мин
Количество просмотров4.1K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Migrating process BPMN from IBM BPM to Camunda — Step-by-step Tutorial» автора Joe Pappas.

Если вы думаете, что сможете экспортировать BPMN из IBM, что сможете открыть его в Camunda Modeler, вас может ждать сюрприз. Как было обнаружено, экспорт IBM BPMN не включает в себя информацию о диаграммах, которую такие инструменты, как Camunda Modeler, используют для отображения диаграммы. В этом руководстве мы рассмотрим два подхода, используя утилиты, разработанные нашей командой консультантов, чтобы помочь вам создать полную диаграмму, которую можно открыть и просмотреть не только в Camunda Modeler, но и в любом BPMN-совместимом инструменте проектирования.

Читать дальше →

Типичные ошибки джунов, использующих React

Время на прочтение4 мин
Количество просмотров6.5K
Об основных ошибках junior-разработчиков, использующих React. На чем сыпятся джуны, и как с этим жить. Перевод статьи «Mistakes Junior React Developers Make» от специалиста Frontend практики «Рексофт».

Читать дальше →

Задачки для фронтенд-тренировки: клоны CodeSandbox, Robinhood, Whoishiring, Stackoverflow

Время на прочтение3 мин
Количество просмотров6K
Предлагаем вашему вниманию идеи/задачи (не решения) для самостоятельного изучения и оттачивания мастерства.

График цен на акции в стиле Robinhood


image

Robinhood имеет красивый график для отображения цен на различные акции. По мере перемещения по графику, бегущая строка меняется с помощью прокручивающейся текстовой анимации. Если вам интересно как создать такую анимацию, то этот репозиторий может быть чрезвычайно полезен.
Читать дальше →

Вклад авторов