Нужная книга
"Программист-прагматик" Дейва Томаса и Энди Ханта — одна из самых полезных книг по программированию, что я читал.
Несмотря на то, что многие технические аспекты работы уже давно устарели, в целом книга прекраасная. В ней рассказано о высокоуровневых практиках написания кода так, чтобы его не пришлось переписывать. Я ненавижу переписывать код, и потому полюбил эти советы.
#программист_прагматик
"Программист-прагматик" Дейва Томаса и Энди Ханта — одна из самых полезных книг по программированию, что я читал.
Несмотря на то, что многие технические аспекты работы уже давно устарели, в целом книга прекраасная. В ней рассказано о высокоуровневых практиках написания кода так, чтобы его не пришлось переписывать. Я ненавижу переписывать код, и потому полюбил эти советы.
#программист_прагматик
Иногда приходится ходить на собеседования. И часто там спрашивают ОЧЕНЬ странные вопросы.
Многие люди считают, что на такие вопросы вообще не нужно знать ответов. Мол, незачем знать результат вычисления
Я не согласен. Эти вопросы, конечно, совсем не показывают умений кандидата. Они не должны задаваться на собеседованиях, но сами по себе — полезны. Понимание этих вопросов, умение найти ответ, говорит о достаточно глубоких познаниях в языке.
Изучайте язык, на котором пишите. Тогда сколь угодно странные вопросы на собеседованиях будут просто забавной разминкой ума.
#собеседования
Многие люди считают, что на такие вопросы вообще не нужно знать ответов. Мол, незачем знать результат вычисления
[] + ''.Я не согласен. Эти вопросы, конечно, совсем не показывают умений кандидата. Они не должны задаваться на собеседованиях, но сами по себе — полезны. Понимание этих вопросов, умение найти ответ, говорит о достаточно глубоких познаниях в языке.
Изучайте язык, на котором пишите. Тогда сколь угодно странные вопросы на собеседованиях будут просто забавной разминкой ума.
#собеседования
Многие команды пренебрегают непрерывной интеграцией (CI). Очень зря.
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
Бизнес портит все!
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI выполняет задачи, которые должны увеличить уверенность в том, что приложение работает правильно.
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
Закончил изчуать Prolog. Это самый странный язык программирования, что я встречал.
Для того, чтобы решить задачу приходилось отвлечься от решений, которые всегда работали. Сортировка массива определяется, как такая перестановка, где каждый элемент больше предыдущего. И все. Дальше язык сам решит как этого добиться.
Программирование на Prolog сконцентрированно на целях, а не на путях их достижения.
#языки
Для того, чтобы решить задачу приходилось отвлечься от решений, которые всегда работали. Сортировка массива определяется, как такая перестановка, где каждый элемент больше предыдущего. И все. Дальше язык сам решит как этого добиться.
Программирование на Prolog сконцентрированно на целях, а не на путях их достижения.
#языки
Продолжаем разговор о непрерывной интеграции.
Тесты помогают держать часть кода под контролем, но покрыть тестами все приложения слишком дорого. Потому нужны какие-то более простые способы избегать ошибок.
Простой и эффективный путь — статический анализ, проверка корректности программы без ее выполнения. Для разных языков доступна разная глубина такого анализа.
Для JavaScript это JSHint, ESLint. Для TypeScript — TSLint. Уважайте линтеры, любите линтеры, используйте линтеры.
Для других языков можно найти по запросу
#удобство_разработки
Тесты помогают держать часть кода под контролем, но покрыть тестами все приложения слишком дорого. Потому нужны какие-то более простые способы избегать ошибок.
Простой и эффективный путь — статический анализ, проверка корректности программы без ее выполнения. Для разных языков доступна разная глубина такого анализа.
Для JavaScript это JSHint, ESLint. Для TypeScript — TSLint. Уважайте линтеры, любите линтеры, используйте линтеры.
Для других языков можно найти по запросу
static analysis {{language}}.#удобство_разработки
kamyshev.code via @vote
Месяц назад я начал постить через бота статьи, которые прочёл и считаю достойными. Продолжать?
anonymous poll
Да! 💪 – 218
👍👍👍👍👍👍👍 92%
Не стоит. 🙄 – 18
👍 8%
👥 236 people voted so far. Poll closed.
anonymous poll
Да! 💪 – 218
👍👍👍👍👍👍👍 92%
Не стоит. 🙄 – 18
👍 8%
👥 236 people voted so far. Poll closed.