?

Log in

No account? Create an account

Яша Хуяша

май. 17, 2019 | 02:35 am

Давайте попробуем новую ёбаную хуйню. План такой:

1. Вы подписываетесь на мой телеграм: https://t.me/yasha_huyasha
2. Мы вместе, на старости лет, пытаемся понять чо это за хуйня вообще.
3. Нихуя не выходит. Мы псим что дети стали долбоёбами.
4. Смерть

Ссылка | Оставить комментарий {4} |

Про фуллстек

апр. 11, 2019 | 09:39 am

Наблюдаю печальные проекты, на которых лид - джавист, с представлением о фронте уровня типа: "Реакт? Мне говорили лучше ангуляр. Ну да ладно. Где тут у вас верстальщиков набирают?". Ну дальше всякое типа: "мы вам REST API вон дали, дизайнеры вон скрины нарисовали, пилите, у нас тут поважнее дела есть - микросервисы настраивать".

И начинается:
- фронты делают по 50 вызовов к API на скрин с дичайшим overquerying
- бекенд - оптимизирует эту лишнюю нагрузку
- дизайнеры рисуют компоненты на килобаксы, чисто потому что фронты молодые и без права голоса
- т.к. на бекенде особо нечем заняться - вынимай с БД да кидай в API, начинается изобретаться всякое говно типа 5 слоёв абстракции, CORS, и чего-нибудь еще модного для важности
- проблемы архитектуры сваливаются на фронтов, например "если это API лежит, рисуйте крутилку" или "если сервис A отдал ID, а в B по такому ID пока ничего нет - рисуйте крутилку и пингуйте"
- сами фронты без присмотра, всегда берут Redux, и занимаются копипаст-онанизмом

Алё, ребяты! Фронтенд сейчас - зачастую, наиболее технически сложная часть, и именно она продает продукт. А API - ключевой элемент, определяющий всю архитектуру. Нельзя технически лидить фронтовый проект, не понимая проблемы html/css/js, и не шаря в распределенных системах - чтобы строить API.

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

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

Ссылка | Оставить комментарий {26} |

[reposted post] Пациент умер, выносите

апр. 8, 2019 | 12:35 am
(перепостил jakobz)

Opera Paper Products как-бы-шутка-но-не-такая уж и шутка
Opera Paper Products как-бы-шутка-но-не-такая уж и шутка

Я занимаюсь веб программированием 15 лет. Когда я начинал работать за деньги (компьютер у меня был и раньше, конечно), IE 6 был самым передовым и инновационным браузером, Firefox должен был вот-вот появиться, разработчики верили, что будущее за XHTML, до первого драфта HTML 5 и запуска StackOverflow оставалось 4 года, а до первого Chrome – пять лет. 

С вебом было связяно много неоправданных надежд, хайпа, завышенных ожиданий. Мы все ждали, когда же он вот все вообще поглотит, заменит, научится всему и вообще останется чуть ли не единственным инструментом, с которым будут работать вообще все. Сейчас ажиотаж спал и можно взглянуть трезво, что он такое есть и что он такое нет.

Получается вот как. Веб хорош для быстрого прототипирования, простого delivery, но масштаб его роста сильно ограничен. Грубо говоря, он подходит только для прототипов и игрушечных задач. Что-то вроде языка Basic, вроде и программы писать на нем можно, но всерьез его никто не берет. Веб, конечно, не пропадет, но в конечном счете займет место какого-нибудь там питона, на котором будут детей в MIT учить и ученые не слишком требовательные графики рисовать.

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

Ладно, простые статические страницы с текстом — ок, может быть. С адблоком и reader mode жить можно. Хотя и тут есть умельцы, которые умудряются сто слов отрендерить в страницу в 20 мегабайт, потому что технологии, инновации и disruption.

Что-то чуть сложнее — все, говно лезет из всех щелей. Веб-приложения? Интерфейсы? Сразу вешайтесь. Веб не создан для приложений и не развивается в эту сторону даже. Нет ни одного человека, который бы искренне любил веб-версию чего-либо и предпочитал ее нативной. Как только появляется альтернатива, даже иллюзия альтернативы, даже электрон-приложение, — всё, команда с крысами покинула корабль.

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

Но если взять платформу в целом, без сверхподвигов и свехржертв, иллюзия пропадает. Если дать на нее посмотреть человеку, не укушенному веб-пропагандой, иллюзия пропадает. Как только приложение открывает кто-то, отличный от его собственного разработчика на гигабитном интернете и двенадцатиядерном аймаке про, иллюзия пропадает. Начинается бесконечный поток убогостей, шероховатостей, заусенцев, тормозов, проблем, ошибок, которые в принципе не устранить никаким образом. Даже если у разработчика есть внимание и желание возиться с такими глупостями, даже если приложить бесконенчые усилия — нет, оно не исправляется в принципе. Я знаю, я сам такой разработчик, и я пробовал много раз, и много раз обжигался. Хотя когда смотришь издалека, на бумаге, вроде все хорошо. Что может пойти не так? Да все что угодно. И не только может, но и пойдет, причем в самом неожиданном месте. Веб это такой аналог российского автопрома — издалека вроде тоже машина, вроде тоже ездит, че еще надо-то? Но, как мы все прекрасно знаем, есть нюанс.

Существует ли версия этой реальности, где веб вырастает во что-то более значимое? А как же WebAssembly?

А что WebAssebly? Эта чехарда имеет смысл только только для людей, которые думают, что компьютеров нигде кроме браузера не существует. Очнитесь, ребята, это еще один никому ненужный слой абстракции. Мы с радостью себя отбросили на N лет назад и теперь с радостью это преодолеваем. WebAssembly — это попытка запихнуть в веб то, что без веба прекрасно работало уже несколько десятков лет как — С++ приложения. Чтобы что? Я не знаю чтобы что. Чтобы условный Вася все равно качал себе Слак, завернутый в Электрон, зато теперь написаный на WebAssembly. Смотри, мам, он почти как нативный, даже иконочка есть! И почти не тормозит. Почти-почти. Еще раз — попробуйте выкинуть говно веб-пропаганды из головы и взглянуть на это трезво. В чем тут достижение-то?

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

Ссылка | Оставить комментарий {190}

Про микросервисы

апр. 8, 2019 | 12:20 am

У нас на конторе сложилась архитектура Self-Contained-Systems: https://scs-architecture.org/index.html Типичный проект — это один какой-то бизнес с owner-ом, команда в ~10 человек на всё про всё, одна репа, одна БД, SPA-фронт на реакте, и бек на .NET/Java для API и каких-нибудь worker-ов, ~100 таблиц, ~20 скринов.

Интеграции делаются двумя способами: REST API для синхронных интеграций, Kafka — для асинхронных интеграций и репликации данных. Большая часть интеграций — асинхронная. Например, все данные для работы — всех сотрудников или города/страны, каждая аппа забирает себе в БД.

При этом, регулярно новые люди мне рассказывают что мы делаем не так. Что нам надо микросервисы. На вопрос: «а почему, по-твоему, штука, которая тебе employees в кафку кладет — не микросервис?», они обычно говорят что надо иметь userService, чтобы /users?get=123, и не забирать людей в каждую БД.

Таким товарищам по-кругу задаю такой пример. Есть два сервиса:

users.svc/get?age=23&city_id=2,3,1
locations.svc/get?id=1,2,3&country='RU'

Как вытащить всех пользователей с age=23 из городов с country='RU'? Вынуть все города России, и передать их ID в users? Или вынуть всех пользователей с age=23, вынуть их city_id и передать в locations?

Читать дальше...Свернуть )

Ссылка | Оставить комментарий {11} |

Цена фичей

апр. 5, 2019 | 01:51 am

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

Мне кажется что это мало кто понимает. Регулярно вижу что-то типа:

Менеджер: добавить одну кнопку — неделю???

Лид (потупив взор):  ну легаси, 4 года проекту...

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

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

Чем больше фичей в продукте — тем дороже добавлять новые. Это свойство реальности такое, закон природы.

Ссылка | Оставить комментарий {28} |

Мир прост

фев. 27, 2019 | 12:42 am

Весьма недавно людям было нечего жрать, от чего они пиздились туда-сюда. Слава яйцам, решили этот вопрос.

Нынче каждый из моего поколения думает: "ок. Наконец этим идиотам можно продавать любую хуйню".

---- ниже идут мои рассуждения, как решать вопрос -------

Ссылка | Оставить комментарий {2} |

Тесты

янв. 30, 2019 | 11:28 pm

Бывает я захожу на хабр. А на хабре бывает типа: "ну что typescript, но тесты-то все равно писать же". А мы не пишем. Пишем дохуя пиздатых аппов. А тесты - не пишем. Аппы работают, фич-реквестов в джире больше чем багов.

Так вот вопрос - кто вообще эти тесты и нахуя пишет?

Ссылка | Оставить комментарий {31} |

Музыка

дек. 2, 2018 | 02:17 am

https://soundcloud.com/yakov-zhmurov/202bpm - попробовал вернуться к музыке, может пойдет

Ссылка | Оставить комментарий {1} |

yarn plug-n-play

окт. 17, 2018 | 03:09 am

https://github.com/yarnpkg/rfcs/pull/101

Товарищи из yarn наконец-то догадались пропропатчить метод require(), и доставать модули прямо их кэша, вместо того, чтобы копировать их миллионами в node_modules. Чтобы сделать простое решение, как у всех, детям потребовалось почти 10 лет. Надо было всего-лишь повзрослеть, и перестать делать папе назло.

Вот тут детали: https://github.com/yarnpkg/rfcs/files/2378943/Plugnplay.pdf - особенно интересно в контексте "какой же пиздец в npm".

Надеюсь теперь хотя-бы npm как тула подохнет. Хотелось бы, конечно, дожить еще и до похорон node и всего говна вокруг неё.

Ссылка | Оставить комментарий {2} |

Самый пиздец в том...

сент. 14, 2018 | 10:10 pm

Шутка в шутке - джависты показывают какие они дебилы, иллюстрацией про то, какие дебилы джаваскриптеры.



Я тут поспрашивал про картинку - оказалось что очень мало кто понимает в чем проблема с этим LinkedList. Параллельно смотрим на machine learning - вообще никто не помнит даже как матрицы умножаются.

Таким мраком в образовании масс можно пользоваться с меркантильными интересами - продавать ML как решение всего, как Кашпировский воду. Что и происходит. Что, с одной стороны, печально, с другой - мне скорее симпатично когда умные кидают наглых, а не наоборот.

Ссылка | Оставить комментарий {17} |