В русскоязычной среде почему-то принято хаять классическую литературу о дизайне приложений. Clean Code, GoF, вот это все.
Причем никакой альтернативы автор, работающей в какой-нибудь галере вроде EPAM, кроме набивания шишек 10 лет и своего невнятного мычания на тему, не предлагает.
Category: *.JAR
Двадцать лет прошло, а байки про Y2K все такие же глупые:
https://twitter.com/steve_lieber/status/1344788482061811713
Эта хоть про Unix timestamp’ы знает?
https://twitter.com/0xabad1dea/status/1345776663750184963
Дорогой “CTO” никому неизвестной галеры.
Если ты спрашиваешь Java программистов о том, кто разработал Pascal, то проблема явно не в Java программистах.
https://twitter.com/de_gis/status/1314799231010582528
NodeJS в энтерпрайзе
https://habr.com/ru/company/yandex/blog/514550/
По ходу, NodeJS в 2020 дорос до того, что у тебя dependency injection через annotations.
Все как в Java Spring в 2010ом.
Java Champion
Когда в Java Champion’ы стали брать QA’ев:
https://twitter.com/techgirl1908/status/1286682589210619904
https://twitter.com/react_girl/status/1149691479599828992
Индусики-миды в Канаде задолбали всех настолько, что туда уже готовы везти джунов-фронтендеров из Киева?
Spotify Failed
Читаю плач бывшего PM’а из Spotify на тему того, почему он считает тамошнюю культуру провальной, и тут такое:
Product managers should have an equivalent peer for engineering. Product managers should be accountable for the prioritization of work. Engineering managers should be accountable for the engineers’ execution, which includes being able to negotiate speed and quality tradeoffs with the product manager.
Миллениалы изобрели team lead’ов.
Дурачки и Go
Значало гошники кричат “жависты тупые, зачем столько переключателей в GC”.
А потом аллоцируют 10GB мусора, чтобы их GC для бедных не загнулся.
https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap-26c2462549a2/
Давно так не смеялся.
12го декабря Skills Matter планировали устроить в Лондоне конференцию по Scala, на которую пригласили keynote’ом John De Goes.
Но какой-то левачок из Берлина накатал на John’а донос, от которого прослезился бы любой красный комиcсар. Дескать Джон white supremacist. И Skills Matter Джона выпнули.
Но Джон не ударил в грязь лицом, и организовал свой собственный лунапарк со Scala’ой и Funtional Programming. Тоже в Лондоне, и тоже 12го декабря. Объявление об этом пытались снять с официальной страницы Scala, дескать конференция создана на зло и только, но вмешался автор языка.
И тут сообщение, что Skills Matter сколапсились. И теперь единственная конференция по Scala 12го декабря в Лондоне – за Джоном.
Как говорится, “не рой другому яму”.
Под шум от дела Эпштейна взялись за Stallman’а, который RMS.
I've tweeted for many years about how awful Richard "RMS" Stallman is – the pedophilia, the ableism, the misogyny.
Inevitably, each time I do, dudes examine my receipts & then say "all those incidents are from years ago! he's changed now!"
NOPE. https://t.co/ti2SrlKObp
— Sarah Mei (@sarahmei) September 12, 2019
Все чтобы посадить на его место Нужных Людей с Правильной Идеологией.
Скоро в MIT как в совковых НИИ сотрудникам начнут колбасой платить, похоже.
Вирус SJW продолжает атаковать Open Source.
Собственно, с чего бы ему останавливаться, если даже у Линуса Торвальдса удалось отжать Linux.
Modus operandi у SJW всегда один и тот же. Сначала в меченый Open Source засыпается pull request с CoC, Code of Conduct.
Основное заявление CoC всегда одно и то же. Отныне и впредь этот open source должен принимать все pull request’ы от “меньшинств” без разбирательств.
Понятно, что для любого open source’а принятия такого CoC равно смертному приговору. Особенно учитывая, что любой мужик может объявить себя трансгендером со вчерашнего дня. Даже усы с бородой для этого сбривать не надо.
Дальше есть два варианта развития событий.
Либо автор open source этот CoC отвергает, и его начинают бойкотировать, потому что он дескать расист и гомофоб.
Либо же он его принимает. И спустя какое-то время его выпирают из его же проекта, на основании того, что он CoC не соответствует. Вестимо, большинство авторов open source’а – white cis male, очень offending типы, самим своим существованием.
Показательно, что текущая охота идет за John De Goes, который пару лет назад защищал Larry Garfield‘а, у которого тогда отжимали Drupal.
Теперь SJW уже вплотную взялись за самого John’а.
Scala, берегите свои глаза
Another common kind of operation combines the elements of a list with some operator. For instance:
sum(List(a,b,c)) equals 0+a+b+c
This is a special instance of a fold operation:
scala> def sum(xs: List[Int]): Int = (0 /: xs) (_ + _) sum: (xs: List[Int])IntSimilarly:
product(List(a, b, c)) equals 1 * a * b * c
is a special instance of this fold operation:
scala> def product(xs: List[Int]): Int = (1 /: xs) (_ * _) product: (xs: List[Int])Int
Не знаю кем нужно быть, чтобы (1 /: xs) (_ * _)
показалось хорошей идеей.
В биологии это называется мимикрией:
И вредит такое явление в основном настоящим женщинам.
Вместо того, чтобы выступила женщина-программистка, вроде той же Trisha Gee, ее биологическую нишу осознанно отъедает Это.
Меня больше всего смущает, что это Hannah Howard даже не особо пытается быть женщиной. Потому что быть женщиной – тяжело. А Hannah застряло где-то посредине, достигнув своих целей.
Scala головного мозга
Подсказка: не надо так делать
If a method is used in operator notation, such as a * b, the method is invoked on the left operand, as in a.*(b)—unless the method name ends in a colon. If the method name ends in a colon, the method is invoked on the right operand.
JavaScript в опасности
In JavaScript, functions are objects. Because of this, functions can take functions as arguments, and can be returned by other functions. Functions that do this are called higher-order functions. Any function that is passed as an argument is called a callback function.
Отсюда:
https://codeburst.io/javascript-what-the-heck-is-a-callback-aba4da2deced
Этот человек “учит” других JavaScript’у. И судя по тому, что у статьи 10K лайков, и она так и не исправлена, всякие индусы успешно “учатся”. И других уже “учат”, скорее всего.
Об абстракциях
Никитка, который не мог понять почему Android весит 6GB, оказывается и в абстракции не может. Ему бы не на Clojure с такими знаниями писать, а на Go каком-нибудь.
Левый (во всех отношениях) JavaScript opensource’ик решил запретить себя использовать всем “злым дядям”.
Если интересно, вот список “злых дядек”:
https://github.com/lerna/lerna/commit/250ec4f68f07903ef1d1b34170f93a796895f266#diff-9879d6db96fd29134fc802214163b95a
Методики достойные Коммунистической Партии.
К счастью, SJW’шку кикнули. Тут еще хороший отзыв: http://esr.ibiblio.org/?p=8106
Индусы покоряют Go
Меня не перестает изумлять способность индусов объяснить всему миру то, чего они сами не поняли.
https://golangbot.com/buffered-channels-worker-pools/
Великий исследователь придумал очень сложную concurrent задачу, которую иначе как Go не решить. Есть 100 трехзначных чисел. Для каждого нужно посчитать сумму цифр. Чтобы не было совсем скучно, каждая goroutine’а засыпает на две секунды. Если сумму цифр трехзначного числа можно посчитать за наносекунды, то секунда – это уже не один, а два порядка выше.
А теперь, внимание, фокус! Запускаем в два раза больше goroutine. Поскольку, все, что они делают 99.99% времени – это спят, конечно в два раза большее количество спящих недопотоков справилось с работой в два раза быстрей. С тем же успехом можно было бы создать их сразу сто, и получить десятикратный прирост performance’а. Вот где сила то!
Егорка и ORM
Как-то упустил в свое время этот высер Егорки про ORM:
http://www.yegor256.com/2014/12/01/orm-offensive-anti-pattern.html
Суть в том, что Егорка не любит ORM, и потому придумывает свой собственный, уникальный подход.
Впрочем, будучи неучем, ему невдомек, что его подход называется ActiveRecord, который он распилил напополам, и теперь пытается заставить хоть как-то работать.
Забавно, что как раз ActiveRecord из Ruby on Rails Егорка считает ORM’ом.
К счастью, даже среди ПэХэПэшников еще водятся разумные люди:
https://medium.com/@mantasd/orm-is-an-offensive-anti-pattern-really-42269673d54d