Получи случайную криптовалюту за регистрацию!

Экстраполяция IT

Логотип телеграм канала @itextrapolation — Экстраполяция IT Э
Логотип телеграм канала @itextrapolation — Экстраполяция IT
Адрес канала: @itextrapolation
Категории: Технологии
Язык: Русский
Количество подписчиков: 3.23K
Описание канала:

Канал об IT в целом и о программировании в частности.
На канале объявлено военное положение и поэтому по вопросам рекламы пишите: @aratak, а деньги отправляйте сюда: https://send.monobank.ua/jar/97f7LwGQJF

Рейтинги и Отзывы

3.00

2 отзыва

Оценить канал itextrapolation и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

0

1 звезд

1


Последние сообщения 3

2022-07-15 11:01:01 Одна из основных причин закручивания гаек на работе — это конечно же юридические проволочки. И основная проблема проволочек — это интеллектуальная собственность на написанный код. Разбираться в этом всём кошмаре интеллектуальных собственностей, всяких лицензий на софт и всяких юрисдикции — сущий кошмар.

Ну вот вы выполнили npm install blah и ещё кусок кода написали, который вызыывает функцию из этого пакета. Чо с правами на код? Кому оно вот это принадлежит? Лицензии очень хитро наследуют друг друга и «инфецируют» своими лицензиями код, где используются. И конечно имеют разные особенности. Какая-нибудь зависимость в пакете с пакетами, от которого зависит ваш этот blah может легко поставить огромный крест на очередном раунде инвестиций, когда вдруг юристы решат тщательно проверить кому же принадлежит весь код суммарно.

Или например вы, как отвественный разработчик, взяли кусок кода из прошлого проекта с прошлым заказчиком и вставили в этот проект. Ну, всё то же самое, а там ещё вы постарались и библиотечку написали, тестами обложили всё. Молодец? Прям сейчас — да, а вот когда юристы прийдут и начнут разбираться, то окажется, что вот эта вот конкретная часть кода второго проекта от второго заказчика принадлежит первому проекту и первому заказчику. И юридически окажется, что второй проект, который принёс уже миллионы долларов вдруг обязан всем своим существованием первому проекту, а значит второму заказчику нужно срочно поделиться прибылью с первым.

Вот такие дела.

————
Собираем на пикап: https://t.me/itextrapolation/628
1.1K views08:01
Открыть/Комментировать
2022-06-23 11:01:00 Про тесты.

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

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

Давным давно коллега мой придумал шикарное правило в отношении тестов и называл его «правилом Шапокляк». Идея в том, что тесты должны быть, как крокодил Гена — плоскими и зелёными. Чем больше в ваших тестах разного устранения дублирования, наследования, переменных и всяких ленивых вызовов, тем больше тест похож на код, а не на тест.

Приведу один простой пример. Писать я буду на абстрактном псевдоязыке, чтобы передать смысл. Если попрёт, будут и другие примеры с «хорошо-плохо».

Плохо писать:

user = create(User)
expect(user.full_name).to equal("#{user.first_name} #{user.last_name}")


Это сильно упрощённый пример, но вот expect(2 + 2).to equal(2 + 2) уже отчётливо прослеживается.

Хорошо писать:

user = create(User, first_name: ‘Bob’, last_name: ‘Smith')
expect(user.full_name).to equal("Bob Smith")


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

Кстати, мне очень сильно импонирует идея языка Гхеркин, где программа в прямом смысле читабельный текст, но про него как-нибудь отдельно расскажу.
533 viewsedited  08:01
Открыть/Комментировать
2022-06-22 11:01:01 «Самое клёвое в работе программиста выбирать технологии и мечтать о том, каким будет твой код. Самое скучное в работе программиста — писать этот самый код»
764 views08:01
Открыть/Комментировать
2022-06-20 11:28:01 За годы программирования самых разных систем как по сложности, по объёму и по запущенности, я заметил очень простой признак плохого кода.

Если писать тесты на код тяжело, неудобно и вообще проще вручную проверить, то значит код этот — говно.
415 views08:28
Открыть/Комментировать
2022-06-17 11:01:00 Азимов когда-то сказал про магию и технологии, но в современности эта фраза должна звучать как «Любая достаточно продвинутая программа неотличима от интеллекта»
338 views08:01
Открыть/Комментировать
2022-06-16 11:01:00 В телеграме работа с публичными каналами кардинально отличается от привычных площадок. В ютубе, например, все блоггеры, как один, начали просить нажимать на колокольчик, чтобы мгновенно узнавать о новой публикации, новостные ресурсы начали добавлять бесячую браузерную нотификацию о новых постах. А в телеграме же с точностью до наоборот. Пользователей просят нажимать «mute», чтобы новые посты не раздражали. Даже тем, кто не убрал звук оповещений, сообщение не приходит благодаря особому тихому режиму отправки сообщений. Попробуйте отжать «mute» на недельку на канале и убедитесь сами — появится значок непрочитанного сообщения, но форсированное уведомление приходить не будет. За другие каналы ручаться не могу :-)

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

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

Хочу попросить вас, мои любимые, рассказать о моем канале вашим друзьям. В телеграме ли, на фейсбуке ли. Может даже при личном контакте. Особенно приятно мне будет, если вы вместе со ссылкой на «Экстраполяцию» опубликуете понравившийся пост у себя на соц.страничке.

Люблю, целую, ваша «Экстраполяция».

Ссылка для ответственных, но ленивых: https://t.me/itextrapolation
504 views08:01
Открыть/Комментировать
2022-06-15 11:01:00 Ревью пулл реквеста нужно глобально только по двум причинам: с целью улучшения техники или стратегии. Техника — это когда Фаулер доволен и тесты быстры и зелены, а стратегия — это когда код готов к глобальным изменениям, неожиданным капризам клиентов и внезапным пиковым нагрузкам не там, где подстелили соломки.

Логично, что обсуждение стратегии должно предшествовать изменениям в коде, а технические неисправности с закрытыми глазами можно исправлять и после. Черт побери, обсуждать глобальные изменения архитектуры после пулл реквеста — это значит, что время на пулл реквест было потрачено впустую и надо все переделывать. А вот технические ошибки можно бы и самому проверить — отсматривать свои собственные пулл реквесты перед тем, как кому-то их показывать, очень полезное дело.

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

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

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

Конечно же, современные команды состоят сплошь из профессионалов и считается, что все более-менее равны как по правам, так и по интеллектуальным способностям, поэтому количество ролей «командир» и «исполнитель» у каждого разработчика должно выходить приблизительно поровну. В итоге окажется, что в половине случаев каждый разработчик выступает исполнителем, а во второй — командиром.

Опять же, «исполнитель» вовсе не означает, что тварь он дрожащая и просто на кнопочки нажимает, вовсе нет. Обсуждения, аргументации и доводы должны быть с обеих сторон. Но окончательное решение должно быть за командиром.
408 views08:01
Открыть/Комментировать
2022-06-14 11:01:00 Помните тест, в котором нужно было сосчитать количество передач баскетбольного мяча? Если вы не видели, то посмотрите, прежде чем читать дальше.

В 2004 году был сформулирован принцип «ложной слепоты». Этот термин объеденяет в себе несколько разнообразных феноменов нашего восприятия. Обычно выделяют два вида ложной слепоты: слепоту невнимания и слепоту к изменениям. Слепота невнимания (или перцептивная слепота) подразумевает неготовность нашего мозга воспринимать изменения, которые мы не ожидаем увидеть. Как гориллу в ролике, которую уже окрестили «невидимой гориллой» и даже сайт отдельный есть по этому поводу. Еще причиной называют рассеянность, которая вызванная необходимостью полностью сконцентрировать внимание. Очевидно, что на себе вы этот феномен можете почувствовать только если о нем не знаете. И действительно, при повторном эксперименте с другими футболистами и совершенно другой макакой вы ее обязательно заметите, так как ожидаете ее увидеть.

Слепоту к изменениям тоже можно заметить гораздо проще, есть довольно много роликов в интернете на эту тему. Даже BBC снял передачу, посвященную этому феномену. В обычных условиях изменение наблюдаемой картины мгновенно обращает на себя внимание. Однако мы можем не замечать изменения, если они совпадают с коротким прерыванием наблюдаемой картинки. Это может быть кратковременное моргание экрана, монтажный стык видео или короткая помеха. В экспериментах по слепоте к изменениям обнаружилось, что почти 70% испытуемых не замечали подмены главного действующего лица, а изменения менее существенных деталей оставались проигнорированными почти в 100% случаев.

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

#перечитываяэкстраполяцию
385 viewsedited  08:01
Открыть/Комментировать
2022-06-13 19:01:00 Тут сейчас волна вайти-вайти, а вот Александр Парамонов, (с которым мне удалось поработать), снял короткометражный фильм «Выйти из IT». Актуальненько. Приятного просмотра.

https://vimeo.com/683521638
430 views16:01
Открыть/Комментировать
2022-06-12 11:01:00 ​​Выскажу непопулярное мнение «Экстраполяци». Знаете, сейчас принято ругать Эппл за их решения. Вроде клавиатуры бабочкой, что прям откровенное говно и с технической и с практической точки зрения. Или тач-экранов вместо F1-F12 кнопок, что тоже оказалось менее функциональным, чем ожидалось.

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

Я не силён в поговорках, но помните, кто не рискует тот, кто не пьёт шампанское с огурцами.
346 views08:01
Открыть/Комментировать