Обложка канала

Cross Join - канал о разработке. Страница 2

Канал о разработке. Go, PHP, Postgres, тимлидство и т.д

  • Cross Join - канал о разработке

    Просили покритиковать какой-нибудь язык. А я не хочу, хочу посравнивать Angular и Go. Да, я знаю, что ангуляр - не язык, а фреймворк, да еще и фронтенд, и сравнивать их тупо, но я все равно буду :) Ну, я же испытываю эмоции при использовании, значит их можно сравнить. Ну так вот. Когда-то, миллион лет назад, я жёстко хейтил язык Go за его примитивность и невыразительность. Например, если посмотреть на тот же Rust: Rust и Go - это как макбук и деревянные счёты. На го писать противно - слишком тупой язык. Я правда так думал. Однако время шло, и судьба меня закинула сначала писать бекенд на Go, а потом, что ещё страннее, параллельно писать фронтенд на Ангуляре. И вот мои наблюдения. То, что ты пишешь на Go, ты понимаешь полностью. Взял полено, выточил перочинным ножиком из него Буратино. Максимально просто. На ангуляре же ты машешь волшебной палочкой в надежде, что случайно всё сработает, и потом пытаешься понять, почему всё так странно выходит. То носа нет, то руки из жопы. Например, сообщения об ошибках. Я ненавижу в Go в каждой строке кода вручную проверять каждый чих. Но зато ни одного сюрприза точно не будет: если ты не понял, где ошибка, значит сам долбоёб, некого винить. В Ангуляре это жесть. Компонент может молча не отрисоваться, потому что ты в модуле в магическом месте не подключил другие магические модули. Или подключаешь к компоненту свой scss файл, и ошибся в пути. Получшь ошибку типа "include не сработал" (не помню точный текст) без указания строки кода или хоть какого-то намёка на причину проблемы. Вообще, концепция конфигурации вместо программирования я теперь считаю сомнительной. Явное всё же лучше неявного. Модули ангуляра придумал враг людей, ацкая сотона. Зато простейшая программа выглядит солидно: ты там что-то вечно декларируешь, импортируешь, компонуешь и тд., сразу видно, что умный. В го наоборот, чувствуешь себя тупым, код выглядит так себе, но всё, блять, понятно и работает. Ну так вот, если Ангуляр и соизволит выдать ошибку, то это будет стектрейс на 100 строк, состоящий на 99% из магических обёрток. В Go же ты сам явно определяешь, где как и что выводить. А магия и обертки там не приняты. Скорость компиляции. Go компилирует код мгновенно. Я хз, как это работает, но это волшебство. ×10 к скорости разработки. Ангуляр же - пока переведёт из тайпскрипта в js, пока разберётся в своей магии, пока разогреет компьютер до состояния сковородки - пройдёт вечность. Кстати, в go много бессмысленной писанины, и это раздражает, но с появлением copilot это всё за тебя пишет робот. Ты только пишешь if, а он уже добавляет err != nil, пишет в лог или там возвращает ошибку дальше. Магия, какой она должна быть. Ну и последнее. Зависимостей в го поменьше. Раз в миллион где-то. На го не принято использовать фреймворки, орм и любую другую магию - только точечно нужные библиотеки. Поэтому завендорить зависимости - норма жизни. Кстати, декларируемая сверхспособность ангуляра "все есть из коробки" не такая уж и сверх. Календарь на диапазон дат - хер тебе, автокомплит, который бы из коробки нормально все делал - хер тебе, и тд. Условная валидация полей тоже, вручную. Всё надо дорабатывать или тянуть извне. И нафига это всё? У меня всё. Подписывайтесь на наш канал, в следующей серии буду сравнивать jQuery и Haskell
  • Cross Join - канал о разработке

    Кстати, да, паттерны - тоже сомнительная штука. Никакие паттерны не сделают из джуна синьора. Даже наоборот, как начнут паттерны везде пихать на ровном месте - код вообще не понять. 2+2 складывают через три пизды и 10 абстракций. Понимание того, где гибкость нужна, где нет - имхо не особо формализуемо. Т.е. джуну они не помогут, а синьор и так справится. Почерпнет из своего опыта и опыта коллег с помощью нейросети в черепной коробке.
  • Cross Join - канал о разработке

    Принципы S.O.L.I.D. - говно, потому что невнятные, и требуют толкователя. Я в этой индустрии десятилетия, и регулярно натыкаюсь на очередное объяснение или, наоборот, уточняющий вопрос. Недавно опять в твиттере наткнулся на "а что для вас SRP?". На Хабре наверно уже 100 статей, одна другой хуже. Всегда по одному сценарию: кто-то пишет, как он понял, а ему суют в панамку, что на самом-то деле подразумевалось совсем другое. Очень похоже на толкование Библии, прям один в один. Пользуюсь ли я SOLID? Не знаю. Я пользуюсь опытом. Уж точно не сверяюсь после каждой строчки кода, а удовлетворяет ли это, например, букве O.
  • Реклама

  • Cross Join - канал о разработке

    МОСКВА, 27 апреля. /ТАСС/. Президент РФ Владимир Путин согласился с необходимостью развивать собственные протоколы связи взамен зарубежных TCP/IP для обеспечения технологического суверенитета и независимости страны. https://tass.ru/politika/17633161
    Путин поддержал создание российских протоколов связи, альтернативных зарубежным

    Глава государства провел мероприятие в индустриальном парке "Руднево", где обсуждали особенности развития отечественных беспилотных летательных систем

    TACC
  • Cross Join - канал о разработке

    Статья от моего камарада Анатолия. Вот это заморочился мужик!! А-хре-неть!!! vc.ru/life/67…latformy
    Пол — это лава: история разработки прототипа интерактивной светодиодной игровой платформы — Личный опыт на vc.ru

    Дурная голова рукам покоя не даёт… история началась несколько месяцев назад: я увидел в интернете забавное видео игры в комнате с пиксельным светодиодным полом и решил сделать подобное для своих детей. За эти месяцы я получил массу удовольствия от процесса разработки и даже заразился идеей масштабирования проекта, но обо всём по порядку!…

    vc.ru
  • Cross Join - канал о разработке

    чату GPT можно сказать, мол, веди себя как учитель английского языка, исправляй ошибки, учи меня теории, задавай вопросы я скопипастил большой промт для этого, и каково было мое удивление, что эта тварь повела себя как школьная училка, заставляет общаться с ним на "вы". Пиздец!
  • Cross Join - канал о разработке

    Алгоритм «Longest common subsequence» на Go. Как прийти к решению?

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

    Хабр
  • Cross Join - канал о разработке

    ​​Уважаемая аудитория, у нас апдейт Добры молодцы и девицы, у нас новина! Из-за частых челобитных от вас об использовании в наших писаньях да лубочных представленьях басурманских словес, над писарями пестун наказал выписать толмача и впредь баять токмо на родном языке. Челом бьём, вече NEWHR (Новый вербовщик)
  • Cross Join - канал о разработке

    Нейросеть пытается текстом нарисовать "девятый вал" Айвазовского. Получается что-то очень странное )))
  • Cross Join - канал о разработке

    Если кто еще не видел, на что способен GPT4: https://www.youtube.com/watch?v=outcGtbnMuQ пишет и дебажит бота, анализ картинок, по наброску делает сайт, считает налоги с учетом всех деталей, может делать это в стихах
    GPT-4 Developer Livestream

    Join Greg Brockman, President and Co-Founder of OpenAI, at 1 pm PT for a developer demo showcasing GPT-4 and some of its capabilities/limitations. Join the conversation on Discord here: discord.gg/openai. We'll be taking audience input from #gpt4-demo-suggestions.

    YouTube
  • Cross Join - канал о разработке

    в регулярке случайно набрал букву х вместо фигурной скобки, и вот что мне подсказывает нейросеть copilot...
  • Cross Join - канал о разработке

    Make PostgreSQL query monitoring in 30 min with Golang and Graylog

    You can easily make your own powerful query monitoring in half an hour. Information about every query at any period of time. Github: https://github.com/anton-okolelov/pgquerywatcher

    YouTube
  • Cross Join - канал о разработке

    Дженерики в Go в действии Наконец-то заапрувили proposal по включению универсальных функций для работы со слайсами https://pkg.go.dev/golang.org/x/exp/slices в стандартную библиотеку. Насколько я понимаю, это будет уже в GO 1.21. Господи боже мой, теперь можно будет поискать элемент в слайсе через стандартную библиотеку!!!!11111одинодинодин Отсортировать слайс любого ordered типа одним вызовом без костылей Сравнить два слайса и т.д. Я джва года ждал! Да что там, джесять лет! Кто там говорил, что дженерики в го не нужны?
  • Cross Join - канал о разработке

    Хотелоь бы подискутировать, провалидировать мысли. Имхо ORM в целом работают плохо. В веб-приложениях, интенсивно работающих с базой, часть бизнес-логики (условия, джойны, группировки) неизбежно встроена в SQL-запросы (а не только существует в коде приложения), поэтому в случае ORM происходит автогенерация сложных SQL, которая по любому работает через жопу, неоптимально, да еще и плохо дебажится. DBAшники не менее чем в 50% своих выступлений упомянают примеры SQL, порожденных ORM-ками (там обычно зло ацкой сотоны из чорного ада). Это конечно дело вкуса, но из моего опыта мне всегда было проще выразить запрос в сыром виде, а потом уже накручивать логику на результат, чем всё делать сразу через хитроописанную взаимосвязь сущностей. Ну а для сложных отчетов, понятно, ORM - это просто ппц. С другой стороны, query builderы (не ORM, а просто построители запросов) часто помогают в случае, когда есть форма с миллионом необязательных галочек и инпутов, и строить сырой запрос конкатенацией - можно тронуться умом и допустить секьюрити проблемы. Поэтому лично я для себя пришел к такому выводу: везде стоит писать сырые запросы, кроме тех случаев, когда надо запрос собирать из частей. Но и в этом случае использвать условный Squirrel (query builder для Go), а не условный Gorm (ORM для Go). Да, писанины немного больше, но код становится при этом более понятный и поддерживаемый. В мире Go вообще не оч принято использовать ORM, фреймворки и т.д., пара лишних строк кода - это всего лишь хорошее медитативное занятие (c)
  • Cross Join - канал о разработке

    Не моё (хз откуда оригинал), но гениально ))))
  • Реклама

  • Cross Join - канал о разработке

    Приветики!🌷 Дочитал "Идеальный программист" Роберта Мартина. Читал две недели. Роберт Мартин - известный инженер и консультант в области ИТ-организаций. Он подписывал https://agilemanifesto.org/. Его почему-то периодически зовут Дядя Боб. Может быть у него просто есть племянники. Книга - один из его известнейших трудов, наравне с "Чистым кодом" и "Чистой архитектурой". "Идеальный программист" - самая человекопонятная из них, поэтому я выбрал именно ее. Кроме этого, мне хотелось узнать, что такое "идеальный программист". Если такой специалист реально существует, то за определением стоит идти к человеку уровня Мартина. Ответ оказался предельно прост. Как я уже читал в книгах Питерсона, Франкла и Перлза, любой человек характеризуется ответственностью. Настоящий профессионал у Мартина характеризуется ответственностью и знанием программирования. Именно эти понятия и поясняются на протяжении всей книги. Ответственный программист не раздает пустых обещаний, умеет говорить "нет", умеет соглашаться, занимается развитием и изучает свою предметную область. Профессиональный программист тренируется в мастерстве, выдает качественный продукт, развивает отношения с коллегами и умеет сотрудничать. Все это подкрепляется большим количеством прикладных примеров из практики автора. Обсуждаются как абстрактные концепты ("ответственность"), так и конкретика ("программирование ночью"). Как специалисту в процессах, мне было интересно почитать размышления Мартина про экспертные оценки сроков выполнения задач в интеллектуальном труде. Для тех кто не в курсе - это очень мутная тема и там нет четкого ответа "как правильно". Именно в этой главе заметен переход Мартина от инженера и руководителя в консультанты. Приводимые примеры сменяются с рабочих на консультирующие и тон книги заметно меняется. Почитайте - поймете. Итого - эта книга обязательна к прочтению всем участникам производственных цепочек в сфере ИТ. Скрам мастер, программист, аналитик, тестировщик, тимлид, продакт - я рекомендую ее всем. Она поможет вам лучше понять природу деятельности ИТ. Я не рекомендую эту книгу тем, кто работает вне ИТ - будет скучно и непонятно. Дальше взял читать "Шум" Дэниэла Канемана.
  • Cross Join - канал о разработке

    Если юзаете Gitlab, чекните бекапы, некотрые репозитории при бекапе помечаются как Empty и не попадают в бекап, хотя они не пустые. Можно неприятно удивиться. Баг еще жив в версии 14 как минимум: gitlab.com/gitlab-…es/28854
    Some repositories (esp. wikis) are skipped from backup but they aren't empty (#28854) · Issues · GitLab.org / GitLab FOSS · GitLab

    Summary Executive Summary: When doing a backup of GitLab, some repositories are marked as skipped whereas there are not empty.

    GitLab
  • Cross Join - канал о разработке

    Философия и технологии Ядерная реакция может дать энергию и быть во благо, но может уничтожить планету. Мобильник хорош для моментальной связи и получения информации, но может ослабить интеллект ребенка из-за игр. И т.д. Даже эти вопросы до конца не дорешали, хотя им сто лет в обед. И ведь опять происходит какая-то такая херня, причем очень быстро. Этот год, например, прям богат на прорывы в области нейросетей. ChatGPT поддерживает беседу, сочиняет стихи и сценарии, переводит и пишет простые программы. Dalle2, midjourney и тд уменьшили порог входа в графический дизайн почти до нуля Copilot помогает писать код всё лучше и лучше Даже на войне, говорят, используются интеллектуальные помощники по оптимальному управлению войсками. И всё это проявилось за какой-то сраный год. Опять философия отстаёт от технологий. Человечество наступает на все грабли, и лишь после этого думает о том, что будет дальше. Правильная последовательность дйствий: сначала "зачем", потом "как". Сейчас: сначала сделаем, а там посмотрим, что будет. Конечно, генерируемые программой картинки - это не атомная бомба, но в профессиональной дизайнерской среде наступает заметный перекос. Неолуддиты уже пытаются напрягать регуляторов. Если, предположим, какие-то ИИ-подходы радикально упростят или заменят сложные профессии ( программирование, бизнес, копирайтинг и тд), то что будут делать люди? Торговать пивом? Для чего? Что смогут напрограммировать автоматические программисты с бесконечными ресурсами, какой пиздец это готовит миру? Сейчас некому взвесить "за" и "против", а скорость изобретений зашкаливает. Философы, где вы? Чему учить детей сейчас, и какой в этом смысл? Является ли человек венцом эволюции или же он лишь промежуточная ступень для алгоритмов? Где общественная дискуссия на этот счет? Может, эти вопросы надо задавать сразу боту chatGPT? :)