kamyshev.code
1.86K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
​​Давайте попробуем дайджест два раза в неделю. Это будут не какие-то маст-риды, а просто статьи, которые я прочел и они мне понравились.

Клевые статьи на эту неделю:

+ ​​Как считать/выявлять bus factor на проекте — внутри объяснение, что такое бас-фактор, почему он опасен и утилита для автоматического определения его из кода

+ Что такое Deno и чем этот проект отличается от Node.js?
— ключевые особенности Deno, его приемущества и причины создания

+ 5 заповедей TypeScript-разработчика — простые правила пользования языком для JS-разработчиков

+ ReactiveX Redux — декларативный подход к работе с сайд-эффектами в Redux

+ TypeScript и короткие спринты — не про TypeScript, а про историю чуваков из Школы Разработки Интерфейсов в Яндексе

+ Почему Senior Developer'ы не могут устроиться на работу — про дурацкие загадки на собеседованиях

#дайджест
Пришло время обновить закрепленный пост.
​​Я Игорь, ведущий фронтенд разработчик в Самокате. Люблю чистый код и работающие продукты. Программирую на TypeScript, иногда на Dart или Scala.

В канале пишу о:
— коде: как проектировать приложения, избавляться от говнокода, писать код чистым и красивым;
— софт-скиллах: как решать задачи бизнеса, доводить задачу до конца, не выгорать и не грустить;
— публикациях: ссылки на разные штуки, которые мне вкатили, статьи, доклады, инструменты, онлайн-курсы.
kamyshev.code pinned «​​Я Игорь, ведущий фронтенд разработчик в Самокате. Люблю чистый код и работающие продукты. Программирую на TypeScript, иногда на Dart или Scala. В канале пишу о: — коде: как проектировать приложения, избавляться от говнокода, писать код чистым и красивым;…»
Я люблю JavaScript, люблю Node.js. Но иногда возникают трудности связанные с органичениями платформы.

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

Кейс: воркер-треды

#js
Python снова огонь

Всю неделю наблюдаю за коллегами, маcтерами Python. Очередной раз убедился, что в умелых руках этот язык прекрасен. В нем подкупает выразительность, простота концепций и опциональная статическая типизация. Эти три характеристики позволяют писать приложения быстро, надежно и поддерживаемо. И, на мой взгляд, именно этими словами характеризуются хорошие программы.

Самое крутое, что Python абсолютно универсален. Хочется бекенд веб-сервиса? Пожалуйста. Нужен скрипт для сложной автоматизации? Без проблем. Возникла необходимость написать маленький искуственный интеллект и захватить мир? Отличная идея!

16 агуста SkillFactory запускают новый набор курса Full-stack веб-разработчик на Python. Внутри не только основы Python, но и клевые прикладные темы: работа с Linux, Docker-контейнерами, модуль о софт-скиллах.

#языки #партнерский_материал
​​Свежий дайжест статей!

+ Опыт перевода большого проекта с Flow на TypeScript — Flow мертв, всем пора задуматься о переводе проекта на TS

+ Хотите завершить свой личный проект – забудьте о лучших подходах — о важности создания пет-проектов и техниках доведения их до конца

+ Как я не занял первое место в конкурсе для JavaScript-разработчиков от Telegram — история создания сверх-производительной библиотеки для отрисовки графиков

+ Структурирование React-приложений — о вечной проблеме раскладывания компонентов по папкам

+ Практические рекомендации по разработке крупномасштабных React-приложений, часть 1, часть 2 — внутри рассуждения об архитектуре и библиотеках

#дайджест
Бэкап GitHub

Все знают, что нужно делать бэкапы, но немногие их делают. Особенно бэкапы «надёжных» облачных сервисов.

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

Потратив 10 минут времени и совсем немного денег можно обеспечить себе спокойную жизнь, удобство и комфорт работы.

Инструкция: бэкап GitHub

#удобство_разработки #автоматизаци
Недостаточно красивой идеи

Redux — супер красивая концепция. Он прост, логичен и детерминирован. Но есть проблема — в реальном мире это не работает. И появляется куча шаблонного кода.

Mobx — не очень красив. Это утилитарная штука. Он не отрицает реального мира, а помогает с ним работать.

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

Если для достижения этих характеристик нужно пожертвовать красивой идей — нужно пожертвовать.

#softskills #сделывание #архитектура
Большая часть моих приложений написана на TypeScript. Мне тяжело держать в голове структуры данных и сигнатуры функций, поэтому я поручаю эту работу компилятору.

Отличный доклад про развитие TypeScript, его проблемы и возможные решения — Эволюция TypeScript: всё чудесатее м чудесатее.

#языки
Куда приложить Python

Я много хвалю Python. Это язык который подходит для огромного числа сфер (это редкость для языков общего назначения). На нем можно писать бэкенды, скрипты автоматизации, обрабатывать данные. И это круто.

Особенно, возможность быстро и удобно добывать информацию из данных. Данные — это самое ценное, что есть в программе. Многие компании сейчас зарабатывают только тем, что продают какие-то знания, извлеченные из пользовательских данных. И эта сфера только растет.

Как и во всем IT, там кадровый голод. Таким стоит пользоваться. SkillFactory запускает очередной набор на специализацию Data Science. Там научат всем основным областям знания — языку, необходимой математике, и специфичным темам для обработки данных.

#партнерский_материал #данные
В эти выходные в Питере проходит TechTrain.

Буду писать интересные штуки сразу в твиттер — @kamyshev_code.

Я на конференции оба дня, подходите знакомиться.
Деградация

Компьютеры становяться быстрее — программы становяться медленнее. С каждым годом мы создаем софт всё хуже.

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

Статья Никиты Прокопова — Моё разочарование в софте

#производительность
Хей-хоу! Я писал, что в начале августа сменил работу и теперь работаю в Самокате. Мы делаем быструю доставку продуктов (15-30 минут) без минимальной суммы заказа.

Я занимаюсь внутренними продуктами компании. Работы много (очень), и мы ищем двух матерых фротендеров (офис, Питер).

От вас:
- не бояться (задач, клиентов, кода);
- делать надежные интерфейсы;
- шарить в JavaScript, понимать React, любить TypeScript;
- уметь общаться дизайнерами и продуктологами.

От нас:
- сложные проекты, важное дело;
- крутая команда, умные коллеги.

Пишите за подробностями — @igorkamyshev.
​​Немножко не успеваю вовремя доставлять статьи, но буду стараться. 🤓

+ Четыре правила интуитивного UX — базовые правила создания интерфейсов, программистов это тоже касается
+ История одного монолита, часть 1, часть 2 — история постепенного разбиения монолита 2ГИС на многие серивисы
+ TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development — краткий обзор нескольких методологий разработки

#дайджест
​​Rust

Я привык писать на выскоуровневых языках, только однажды писал на C — в 10 классе на олимпиаде по программированию.

Недавно товарищ показал мне туториал по созданию рогалика на Rust. Я попробовал этот язык и оказалось, что это совсем другой опыт. Нужно писать много кода, он невыразительный, сложный. Зато очень быстрый.

С такими языками мы можем эффективнее использовать компьютеры. Не платить цену за лишние абстракции. Уметь писать такой код важно в любой области, а Rust — отличный кандидат, чтобы научиться.

#языки
Не бойтесь документации

Многие разработчики, когда им нужно разобраться с какой-то технологией, начинают со статей, онлайн-курсов и книг. Я думаю, эта стратегия валидна только для новичков в программировании.

Если у вас есть даже небольшой опыт разработки, и вам нужно познакомиться с новым языком, фреймворком или платформой — начните с чтения документации. Просто от начала и до конца. Обычно, это достаточно небольшой объём текста, который, скорее всего, охватывает все важные аспекты и написан специалистами в выбранной области.

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

#общие_знания
Обратите внимание, у канала изменился пермалинк. Теперь @kamyshev_code.

tlinks.run/kamyshev_code
Связанность

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

Крутейшний доклад Сергея Протько  «Связать и развязать».

#проектирование #архитектура