Четыре вещи, которым нужно разучиться, чтобы стать хорошим разработчиком.
Постулат данной статьи:
• Замени циклы функциями высшего порядка;
• Замени условные выражения структурами данных и полиморфизмом;
• Замени буквальные имена переменных на целевые имена;
• Забудь о существовании глобальной области видимости.
Под катом вас ждут неоднозначные примеры кода, которые с очень большой вероятностью поменяют ваши подходы к программированию.
Читать статью (5 мин)
#programming #clean_code
Постулат данной статьи:
• Замени циклы функциями высшего порядка;
• Замени условные выражения структурами данных и полиморфизмом;
• Замени буквальные имена переменных на целевые имена;
• Забудь о существовании глобальной области видимости.
Под катом вас ждут неоднозначные примеры кода, которые с очень большой вероятностью поменяют ваши подходы к программированию.
Читать статью (5 мин)
#programming #clean_code
Долгие прелюдии
Работая с указателями, необходимо быть крайне осторожными, т.к. данная концепция является, вероятно, одной из самых трудных для понимания.
В процессе разработки рекомендуется включать в работу методы для проверки целостности указателей и данных, на которые они ссылаются, для исключения ошибок. Когда код полностью готов, накладки, связанные с проверками, можно исключить, просто оставив тело метода проверки пустым.
#programming #pointers
Работая с указателями, необходимо быть крайне осторожными, т.к. данная концепция является, вероятно, одной из самых трудных для понимания.
В процессе разработки рекомендуется включать в работу методы для проверки целостности указателей и данных, на которые они ссылаются, для исключения ошибок. Когда код полностью готов, накладки, связанные с проверками, можно исключить, просто оставив тело метода проверки пустым.
#programming #pointers
C++ в сентябре 2020 стал самым быстрорастущим языком (+1.48%) в рейтинге TIOBE. С другой стороны, у Java серьезные проблемы — язык потерял 3.18% по сравнению с прошлым годом. В двадцатке из “наших” - Swift на 12 месте (+0.28%), Objective-C на 19 (-0.99%), Dart на 20 (+0.13%). JavaScript уверенно вырос (+0.41). Тем не менее JS остаётся первым в рейтинге самых популярных языков программирования
Flutter vs React Native vs Native
Можно сказать, что это самые востребованные технологии для разработки мобильных приложений. Несмотря на то что о производительности сейчас говорят далеко не в первую очередь, вопрос об оптимизированности технологии достаточно серьёзен.
Данная статья представляет собой анализ производительности кода на основе сложных анимаций в единой среде GameBench.
Читать статью (5 мин)
#mobile_dev #performance
Можно сказать, что это самые востребованные технологии для разработки мобильных приложений. Несмотря на то что о производительности сейчас говорят далеко не в первую очередь, вопрос об оптимизированности технологии достаточно серьёзен.
Данная статья представляет собой анализ производительности кода на основе сложных анимаций в единой среде GameBench.
Читать статью (5 мин)
#mobile_dev #performance
Coveralls
Coveralls - инструмент для команд разработчиков, который позволит выпускать в prod только тщательно проверенные обновления. Каким образом? Coveralls анализирует каждую строчку кода на покрытие автоматическими тестами.
Рекомендуется взять на вооружение Coveralls совместно с такими интсрументами, как Code Inspector или же Codacy, чтобы обеспечить полную уверенность в разрабатываемом ПО.
GitHub
#tools #code_analysis
Coveralls - инструмент для команд разработчиков, который позволит выпускать в prod только тщательно проверенные обновления. Каким образом? Coveralls анализирует каждую строчку кода на покрытие автоматическими тестами.
Рекомендуется взять на вооружение Coveralls совместно с такими интсрументами, как Code Inspector или же Codacy, чтобы обеспечить полную уверенность в разрабатываемом ПО.
GitHub
#tools #code_analysis
Уверены ли вы в своих знаниях JavaScript
Anonymous Poll
9%
1. Да, уверен на 100%
26%
2. Да, но замечаю пробелы
21%
3. Нет, испытываю сложности
44%
4. Нет, я и вовсе не изучаю JS
Упрощайте списки параметров
Очень часто встречаются листинги кода, в которых методы класса имеют громоздкие списки параметров. Дело в том, что это значительно усложняет чтение и понимание кода.
Старайтесь списки параметров методов ограничивать 2-3 сущностями, а лучший способ - передавайте объект, который уже содержит необходимую информацию. И не забывайте про содержательные имена!
#programming #clean_code
Очень часто встречаются листинги кода, в которых методы класса имеют громоздкие списки параметров. Дело в том, что это значительно усложняет чтение и понимание кода.
Старайтесь списки параметров методов ограничивать 2-3 сущностями, а лучший способ - передавайте объект, который уже содержит необходимую информацию. И не забывайте про содержательные имена!
#programming #clean_code
WebAssembly — разрушительные технологии будущего.
Да, WebAssembly действительно ускорит работу веб-сайтов и приложений, позволит использовать максимум вычислительных ресурсов, однако какова плата за производительность?
Дело в том, что существует довольно страшная уязвимость, отследить наличие которой будет достаточно сложно. И вот именно она может стать роковой.
Читать статью
#programming #technologies
Да, WebAssembly действительно ускорит работу веб-сайтов и приложений, позволит использовать максимум вычислительных ресурсов, однако какова плата за производительность?
Дело в том, что существует довольно страшная уязвимость, отследить наличие которой будет достаточно сложно. И вот именно она может стать роковой.
Читать статью
#programming #technologies
Snyk - повадырь.
Snyk поможет командам разработчиков находить уязвимости в проектах с открытым исходным кодом. Основные из поддерживаемых языков: Java, Ruby, Python, Node.js, Scala.
База Snyk отслеживает 800 тыс open-source проектов, что помогает более 25 тыс. приложений работать стабильнее. 83% пользователей Snyk регулярно обнаруживают уязвимости в своих проектах. А хорошо вооружен лишь тот, кто предупрежден.
GitHub
#programming #tools
Snyk поможет командам разработчиков находить уязвимости в проектах с открытым исходным кодом. Основные из поддерживаемых языков: Java, Ruby, Python, Node.js, Scala.
База Snyk отслеживает 800 тыс open-source проектов, что помогает более 25 тыс. приложений работать стабильнее. 83% пользователей Snyk регулярно обнаруживают уязвимости в своих проектах. А хорошо вооружен лишь тот, кто предупрежден.
GitHub
#programming #tools
Архитектура: важнейшие паттерны
Данная статья представляет собой описание основных и наиболее часто используемых архитектурных шаблонов для проектирования программного обеспечения.
Недаром говорят: "Как заправишь, так и поедет" Так вот, это как никак кстати относительно архитектуры ПО. Грамотное проектирование позволит вам сэкономить не только время и нервы, но и штат специалистов техподдержки.
Читать статью (7 мин)
#programming #architecture
Данная статья представляет собой описание основных и наиболее часто используемых архитектурных шаблонов для проектирования программного обеспечения.
Недаром говорят: "Как заправишь, так и поедет" Так вот, это как никак кстати относительно архитектуры ПО. Грамотное проектирование позволит вам сэкономить не только время и нервы, но и штат специалистов техподдержки.
Читать статью (7 мин)
#programming #architecture
Пошаговая инструкция о том, как стать экспертом Git.
Статья об одном из самых важных навыков, которому обязательно стоит обучиться разработчику. Она познакомит вас с процессом инициализации локального репозитория, фиксации коммитов и отправки их в удаленный репозиторий.
Не обошли стороной механизм ветвления и слияния веток как основного метода разработки ПО в промышленных масштабах. Но самая важная особенность Git - контроль версий. Приглашаем под кат.
Читать статью
#programming #git
Статья об одном из самых важных навыков, которому обязательно стоит обучиться разработчику. Она познакомит вас с процессом инициализации локального репозитория, фиксации коммитов и отправки их в удаленный репозиторий.
Не обошли стороной механизм ветвления и слияния веток как основного метода разработки ПО в промышленных масштабах. Но самая важная особенность Git - контроль версий. Приглашаем под кат.
Читать статью
#programming #git
Рост установок в 3 квартале 2020
Количество загрузок приложений в мире достигло 36.4 млрд., это рост на 22.8% по сравнению с аналогичным периодом прошлого года. Установки в App Store выросли на 2.5% до 8.2 миллиарда, в то время как Google Play вырос на 30.3% до 28.2 миллиарда.
Компания Sensor Tower опубликовала отчет Store Intelligence Data Digest за третий квартал 2020 года.
Подробнее
#programming #news
Количество загрузок приложений в мире достигло 36.4 млрд., это рост на 22.8% по сравнению с аналогичным периодом прошлого года. Установки в App Store выросли на 2.5% до 8.2 миллиарда, в то время как Google Play вырос на 30.3% до 28.2 миллиарда.
Компания Sensor Tower опубликовала отчет Store Intelligence Data Digest за третий квартал 2020 года.
Подробнее
#programming #news
Если считать, что 3 подхода одинаково хороши, то приверженцем какого из них вы являетесь?
Anonymous Poll
30%
1. Функционально-процедурный(совмещённый) подход
13%
2. Вызов функции с дополнительными параметрами
57%
3. Вызов функции с последующим хранением её результата
Упрощение поиска проблемных частей кода в Python
Чтобы фильтровать логи по пользователю, видеть последовательность вызовов клиентского API, а также углубляться в логи запроса, необходимо сопровождать каждую лог-запись метаинформацией, чего не делает довольно значительное количество разработчиков.
Программисты, работающие с приложением Яндекс.Такси, разобрались в этом. В статье они предлагают несколько решений данной проблемы.
Читать статью
#programming #clean_code
Чтобы фильтровать логи по пользователю, видеть последовательность вызовов клиентского API, а также углубляться в логи запроса, необходимо сопровождать каждую лог-запись метаинформацией, чего не делает довольно значительное количество разработчиков.
Программисты, работающие с приложением Яндекс.Такси, разобрались в этом. В статье они предлагают несколько решений данной проблемы.
Читать статью
#programming #clean_code
Хабр
Забываете передавать аргументы в функцию? Вам поможет contextvars
Мы в Яндекс.Такси любим писать логи. Ещё больше мы любим, когда логи помогают нам расследовать проблемы в продакшене. При нагрузке в десятки тысяч RPS просто на...
О важности абстракции
Взгляните на листинги двух классов. Да, вам может показаться, что класс Program более компактный, но стоит более внимательно посмотреть на класс Employee, как тут же становится понятно, что здесь мы работаем на верном уровне абстракции.
Методы, которые используются во внутренних вычислениях, закрыты, а открытыми остаются лишь те, которые действительно выполняют свою задачу, при этом область применения класса Employee четко понятна из названий методов и переменных-атрибутов.
#programming #clean_code
Взгляните на листинги двух классов. Да, вам может показаться, что класс Program более компактный, но стоит более внимательно посмотреть на класс Employee, как тут же становится понятно, что здесь мы работаем на верном уровне абстракции.
Методы, которые используются во внутренних вычислениях, закрыты, а открытыми остаются лишь те, которые действительно выполняют свою задачу, при этом область применения класса Employee четко понятна из названий методов и переменных-атрибутов.
#programming #clean_code
С прозрачностью скриптов сборки к идеальным зависимостям
Очень комплексная и подробная статья с описанием принципов построения и создания скриптов сборки на примере Maven и Gradle.
На текущий момент с великим множеством зависимостей в разрабатываемых вами проектах, этапу сборки необходимо уделять особое внимание.
Читать статью (10 мин)
#programming #clean_code
Очень комплексная и подробная статья с описанием принципов построения и создания скриптов сборки на примере Maven и Gradle.
На текущий момент с великим множеством зависимостей в разрабатываемых вами проектах, этапу сборки необходимо уделять особое внимание.
Читать статью (10 мин)
#programming #clean_code
If-else, пора забыть об этом
Однако никто не говорит, что использование в коде конструкций switch, if-else является чем-то запретным, это идеальные инструменты на начальном этапе разработки проекта.
С развитием проекта от них следует избавляться, т.к. они не предлагают той гибкости и масштабируемости, которые может предложить полиморфизм.
Читать статью (6 мин)
#programming #clean_code
Однако никто не говорит, что использование в коде конструкций switch, if-else является чем-то запретным, это идеальные инструменты на начальном этапе разработки проекта.
С развитием проекта от них следует избавляться, т.к. они не предлагают той гибкости и масштабируемости, которые может предложить полиморфизм.
Читать статью (6 мин)
#programming #clean_code
Sider - как не наступать на те же грабли
Да, это один из тех инструментов, которые позволяют большим, и не только, командам разработчиков контролировать качество кода. В связке с Codacy или Code Climate будет достигнута наивысшая эффективность в оценке качества.
Sider позволяет обрабатывать текущие проблемы в коде более изящно, нежели с этим справляются линтеры с помощью CI, однако прочувствовать это можно лишь на личном опыте.
Github
#clean_code #tools
Да, это один из тех инструментов, которые позволяют большим, и не только, командам разработчиков контролировать качество кода. В связке с Codacy или Code Climate будет достигнута наивысшая эффективность в оценке качества.
Sider позволяет обрабатывать текущие проблемы в коде более изящно, нежели с этим справляются линтеры с помощью CI, однако прочувствовать это можно лишь на личном опыте.
Github
#clean_code #tools
Какие языки хотят изучать разработчики
Ни для кого не секрет, что научится программировать можно самостоятельно. Даже более того, самообучение является основополагающим в процессе становления разработчиком.
Так вот, команда Specops использовала инструмент Keyword Explorer от Ahrefs для анализа поисковых запросов в Google и Youtube на темы разных языков программирования. И что же, на 1-ом месте бессменный Python, а вот на 2-ом...
Подробнее
#programming #programming_languages
Ни для кого не секрет, что научится программировать можно самостоятельно. Даже более того, самообучение является основополагающим в процессе становления разработчиком.
Так вот, команда Specops использовала инструмент Keyword Explorer от Ahrefs для анализа поисковых запросов в Google и Youtube на темы разных языков программирования. И что же, на 1-ом месте бессменный Python, а вот на 2-ом...
Подробнее
#programming #programming_languages