Языки
Программирование бывает императивным — человек говорит компьютеру что делать. А бывает декларативным — человек говорит компьютеру, что он хочет от него получить. Декларативные программы обычно легче читать. Но пишем мы все равно обычно иперативно.
В книге "7 языков за 7 недель" дошел до языка Prolog. Это представитель логического программирования, в котором концептуально невозможно написать императивный код.
Интересные ощущения. Код выглядит странно, но многие сложные задачи (например, расстановка ферзей на шахматной доске так, чтобы они не могли бить друг друга) решаются совсем легко.
#языки
  
  
  
  
  
  Программирование бывает императивным — человек говорит компьютеру что делать. А бывает декларативным — человек говорит компьютеру, что он хочет от него получить. Декларативные программы обычно легче читать. Но пишем мы все равно обычно иперативно.
В книге "7 языков за 7 недель" дошел до языка Prolog. Это представитель логического программирования, в котором концептуально невозможно написать императивный код.
Интересные ощущения. Код выглядит странно, но многие сложные задачи (например, расстановка ферзей на шахматной доске так, чтобы они не могли бить друг друга) решаются совсем легко.
#языки
Собрал размазанный по каналу конспект "Чистой архитектуры" в один пост.
Чистая архитектура | Конспект книги Дядюшки Боба
#чистая_архитектура #конспект
  
  
  
  
  
  Чистая архитектура | Конспект книги Дядюшки Боба
#чистая_архитектура #конспект
Языки
Люди думают на языке. И чем больше человек знает языков, тем больше разнообразие его способов осмыслить что-то.
Языки программирования тоже определяют мышление программиста. Способ решения задачи сильно зависит от известных специалисту языков.
Только Java? Решение точно будет очень ООПшное. Ну и так далее.
Уверен, что хороший разработчик должен знать много разных языков. Хотя бы поверхностно. Это позволит решать задачи не единственным известным способом, а наилучшим.
#языки
  
  
  
  
  
  Люди думают на языке. И чем больше человек знает языков, тем больше разнообразие его способов осмыслить что-то.
Языки программирования тоже определяют мышление программиста. Способ решения задачи сильно зависит от известных специалисту языков.
Только Java? Решение точно будет очень ООПшное. Ну и так далее.
Уверен, что хороший разработчик должен знать много разных языков. Хотя бы поверхностно. Это позволит решать задачи не единственным известным способом, а наилучшим.
#языки
Исследуя GitHub
Мне часто нужно читать пулл-реквесты на гитхабе. Это в целом не очень удобно, но отдельно раздражает невозможность переходить по файлам вокруг просматриваемого.
Есть хорошее расширение для хрома, которое избавляет от этой боли — Octotree.
#удобство_разработки
  
  
  
  
  
  Мне часто нужно читать пулл-реквесты на гитхабе. Это в целом не очень удобно, но отдельно раздражает невозможность переходить по файлам вокруг просматриваемого.
Есть хорошее расширение для хрома, которое избавляет от этой боли — Octotree.
#удобство_разработки
Нужная книга
"Программист-прагматик" Дейва Томаса и Энди Ханта — одна из самых полезных книг по программированию, что я читал.
Несмотря на то, что многие технические аспекты работы уже давно устарели, в целом книга прекраасная. В ней рассказано о высокоуровневых практиках написания кода так, чтобы его не пришлось переписывать. Я ненавижу переписывать код, и потому полюбил эти советы.
#программист_прагматик
  
  
  
  
  
  "Программист-прагматик" Дейва Томаса и Энди Ханта — одна из самых полезных книг по программированию, что я читал.
Несмотря на то, что многие технические аспекты работы уже давно устарели, в целом книга прекраасная. В ней рассказано о высокоуровневых практиках написания кода так, чтобы его не пришлось переписывать. Я ненавижу переписывать код, и потому полюбил эти советы.
#программист_прагматик
Иногда приходится ходить на собеседования. И часто там спрашивают ОЧЕНЬ странные вопросы.
Многие люди считают, что на такие вопросы вообще не нужно знать ответов. Мол, незачем знать результат вычисления
Я не согласен. Эти вопросы, конечно, совсем не показывают умений кандидата. Они не должны задаваться на собеседованиях, но сами по себе — полезны. Понимание этих вопросов, умение найти ответ, говорит о достаточно глубоких познаниях в языке.
Изучайте язык, на котором пишите. Тогда сколь угодно странные вопросы на собеседованиях будут просто забавной разминкой ума.
#собеседования
  
  
  
  
  
  Многие люди считают, что на такие вопросы вообще не нужно знать ответов. Мол, незачем знать результат вычисления
[] + ''.Я не согласен. Эти вопросы, конечно, совсем не показывают умений кандидата. Они не должны задаваться на собеседованиях, но сами по себе — полезны. Понимание этих вопросов, умение найти ответ, говорит о достаточно глубоких познаниях в языке.
Изучайте язык, на котором пишите. Тогда сколь угодно странные вопросы на собеседованиях будут просто забавной разминкой ума.
#собеседования
Многие команды пренебрегают непрерывной интеграцией (CI). Очень зря.
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
  
  
  
  
  
  CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
Бизнес портит все!
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
  
  
  
  
  
  CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI выполняет задачи, которые должны увеличить уверенность в том, что приложение работает правильно.
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
  
  
  
  
  
  Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки