Понемногу активирую Волшебный МультиПендаль 2024.
Существенно обновил "дипломный" проект, который в основном делают ребята, кто готовится к работе на бэкенде (для курсантов проект обязателен и бесплатен, но наверное сделаю и платную версию "для всех"). Фреймворк (разные для Java, Python, C#, Go, PHP...), CRUD, REST, отношения между модельками ORM (1-1, 1-многие, многие-многие), авторизация/видимость, пагинация, таймзоны, ui с бутстрапом, геоданные, и ещё немало другого по мелочам. Забираемся внутрь ORM, делаем бота, упаковываем в докер, деплоим.
Это то что было, и вот добавил ещё несколько темок: кэширование, логирование, документирование API, интеграционные тесты, ci/cd, транзакционная работа, микросервисы :)
Всего 34 задания (пока) получилось.
Кто проходил со мной этот проект, рекомендую доделать новые фишки.
Существенно обновил "дипломный" проект, который в основном делают ребята, кто готовится к работе на бэкенде (для курсантов проект обязателен и бесплатен, но наверное сделаю и платную версию "для всех"). Фреймворк (разные для Java, Python, C#, Go, PHP...), CRUD, REST, отношения между модельками ORM (1-1, 1-многие, многие-многие), авторизация/видимость, пагинация, таймзоны, ui с бутстрапом, геоданные, и ещё немало другого по мелочам. Забираемся внутрь ORM, делаем бота, упаковываем в докер, деплоим.
Это то что было, и вот добавил ещё несколько темок: кэширование, логирование, документирование API, интеграционные тесты, ci/cd, транзакционная работа, микросервисы :)
Всего 34 задания (пока) получилось.
Кто проходил со мной этот проект, рекомендую доделать новые фишки.
⚡31❤7👍4🫡3
При всех разговорах о сложных инженерных профессиях программисты в среднем намного умнее своих коллег из этих профессий. Потому что computer science = абстрактное мышление + решение "головоломок". Абстрактное мышление в целом скорее противоречит инженерным подходам, которые по определению ориентированы на практику и физическую реальность, но оно очень важно для того, чтобы быть умным.
Не зря многие сильные разработчики, хорошо подготовленные в cs, любят философию, а остальные инженеры-"прагматики" наоборот недолюбливают, считая хипстерством; однако ихний прагматизм работает плохо: по всему Подмосковью массовые отключения тепла и электричества. Потому что без формального кодирования соответствующих социально-трудовых процессов вот это вот всё и будет бесконечно продолжаться. А философия с использованием интуиционистской теории типов например позволяет даже гёделевские противоречия покрыть.
Меритократия наше всё.
P.S. Особенно AI-меритократия :) Слава роботам!
Не зря многие сильные разработчики, хорошо подготовленные в cs, любят философию, а остальные инженеры-"прагматики" наоборот недолюбливают, считая хипстерством; однако ихний прагматизм работает плохо: по всему Подмосковью массовые отключения тепла и электричества. Потому что без формального кодирования соответствующих социально-трудовых процессов вот это вот всё и будет бесконечно продолжаться. А философия с использованием интуиционистской теории типов например позволяет даже гёделевские противоречия покрыть.
Меритократия наше всё.
P.S. Особенно AI-меритократия :) Слава роботам!
✍22👍9😁6❤4🫡2
🏆8❤1
За какую сторону я -- не скажу , но для меня субъективно разница в основном, что в deb много чего под ключ, но работает часто фигово, а в rpm наоборот -- готовых пакетов поменьше, но работают гораздо устойчивее. И в результате нередко приходится мучиться вот так: "install vim-deb on RHEL".
Между прочим, скрипт-язык свежего vim 9.1 стал поддерживать ООП (даже с абстрактными классами) 😁
Между прочим, скрипт-язык свежего vim 9.1 стал поддерживать ООП (даже с абстрактными классами) 😁
🏆13👍8❤1🤔1
Хочу для учебного сервера домашнего игрокомпа взять Xeon E7-8890v4, б/у на авито стоит 20т )))
😁22👍10⚡6🤯2😎2
С надеждой жду, что как на смену JavaScript появился великолепный TypeScript (в чём, как обычно, заслуга не microsoft, а гениального Хейлсберга), вот чтобы и на смену SQL наконец появилось тоже что-то взрослое.
Потому что SQL и реляционная модель -- это несовместимые вещи. Например, строки-дубликаты в модели невозможны и недопустимы. А этот ваш NULL фактически создаёт многозначную логику. Вы же никогда не используете его, надеюсь?
Ну и сам по себе SQL -- это нечто совсем низкоуровневое, как Си, условно, ни одной нормальной абстракции в нём нету.
Потому что SQL и реляционная модель -- это несовместимые вещи. Например, строки-дубликаты в модели невозможны и недопустимы. А этот ваш NULL фактически создаёт многозначную логику. Вы же никогда не используете его, надеюсь?
Ну и сам по себе SQL -- это нечто совсем низкоуровневое, как Си, условно, ни одной нормальной абстракции в нём нету.
👍24🤔12❤9🫡3😁1
Кстати да, у меня такое бывало несколько раз :)
Фаундер задумывает очередной киллер-проект мечты, буквально они говорили: "боюсь, как дам рекламу, так набегут сотни тысяч пользователей, будут расхватывать такой продукт как горячие пирожки...", и моё скромное мнение, что хорошо бы сперва сделать A/B тестирование, посмотреть, а есть ли вообще желающие, оценить сколько будет стоит лид и т.д., полностью игнорировалось (что уже показатель того, что фаундер нуль, хотя они конечно считают себя гениями маркетинга), но зато полгода приличная команда пилила продукт, на который потом едва нашлось 10 пользователей ... Ну ок, мы-то получили хорошие денежки на зарплату :)
Поэтому в таких случаях, когда видите, что фаундер лох, максимально поддерживайте его иллюзию про горячие пирожки, а делайте так:
- пилите монолит, никаких микросервисов;
- только горизонтальное масштабирование (на курсе "Ясная Архитектура" даю соответствующий простой паттерн, сразу после разбора типовых хипстерских
говноархитектур :)
- максимально долго держитесь синхронной обработки.
Фаундер задумывает очередной киллер-проект мечты, буквально они говорили: "боюсь, как дам рекламу, так набегут сотни тысяч пользователей, будут расхватывать такой продукт как горячие пирожки...", и моё скромное мнение, что хорошо бы сперва сделать A/B тестирование, посмотреть, а есть ли вообще желающие, оценить сколько будет стоит лид и т.д., полностью игнорировалось (что уже показатель того, что фаундер нуль, хотя они конечно считают себя гениями маркетинга), но зато полгода приличная команда пилила продукт, на который потом едва нашлось 10 пользователей ... Ну ок, мы-то получили хорошие денежки на зарплату :)
Поэтому в таких случаях, когда видите, что фаундер лох, максимально поддерживайте его иллюзию про горячие пирожки, а делайте так:
- пилите монолит, никаких микросервисов;
- только горизонтальное масштабирование (на курсе "Ясная Архитектура" даю соответствующий простой паттерн, сразу после разбора типовых хипстерских
говноархитектур :)
- максимально долго держитесь синхронной обработки.
👍38🔥8✍5❤2🫡1
Какие-то бедолаги нагнали 2k ботов в этот канал. Я ни с кем не конкурирую, рекламы у меня тут не было и не будет, наборы по 2-3 человека бывают редко, в этом году даже не знаю, когда. Ну и стоит это, по рублю за бота, кто-то отдал 20 долларов лол ) Зачем? Сходил бы в кафе лучше.
Эти шутникам желаю всяческого добра и благополучия, но ни в коем случае не прибавления ума :) Потому что защита от подобных неадекватов сейчас хороший бизнес, и пусть он развивается и дальше. Причём я нашёл только один нормальный сервис по защите от накруток и очистке от папищеков по времени, и довольно дорогой. А ведь такой сервис запилить вообще несложно, и конкуренции, как я уже не раз говорил, для подобных (да и многих других) сервисов в России нету, потому что западные все недоступны; реально океан возможностей построить свой ит-бизнес.
Эти шутникам желаю всяческого добра и благополучия, но ни в коем случае не прибавления ума :) Потому что защита от подобных неадекватов сейчас хороший бизнес, и пусть он развивается и дальше. Причём я нашёл только один нормальный сервис по защите от накруток и очистке от папищеков по времени, и довольно дорогой. А ведь такой сервис запилить вообще несложно, и конкуренции, как я уже не раз говорил, для подобных (да и многих других) сервисов в России нету, потому что западные все недоступны; реально океан возможностей построить свой ит-бизнес.
❤36👍18🤔8❤🔥3✍2
Сегодня был пост про сишечку (что даже в ней надо учиться думать абстрактно, даже стандарты к этому принуждают), но в целом он про то, что, с одной стороны, надо обязательно двигаться в сильные абстракции, фп и cs, но, с другой стороны, невероятно полезно будет покодить на си, ассемблере, и особенно на rust. Например, maestro (лёгкое подмножество ядра Unix) сперва написали на Си, а потом переписали на Rust. Это однозначный тренд замены всего сишного, однако тут вас ждёт много боли и страданий :)
Когда вы возьмётесь за Rust, то будете долго офигевать, сколько вам реально потребуется узнать по самому языку (по языкам Java или Python например полно подробных справочников, но для рабочего программирования вам надо изучить совсем мало) -- но с Rust так не прокатит. А если вы плакали от мутных сообщений компилятора F#, то это до тех пор, пока вы не познакомитесь с компилятором Rust :) и будете часами мучиться с каким-нибудь "cannot return reference to temporary value"...
Тут от вас потребуется невероятно много программистской смекалки для того, чтобы решать самые тривиальные задачи ))) И это крайне полезно.
P.S. Я всегда топлю за то, чтобы изучать темки с высоким порогом входа, чтобы слабаки отваливались сразу 😎
Когда вы возьмётесь за Rust, то будете долго офигевать, сколько вам реально потребуется узнать по самому языку (по языкам Java или Python например полно подробных справочников, но для рабочего программирования вам надо изучить совсем мало) -- но с Rust так не прокатит. А если вы плакали от мутных сообщений компилятора F#, то это до тех пор, пока вы не познакомитесь с компилятором Rust :) и будете часами мучиться с каким-нибудь "cannot return reference to temporary value"...
Тут от вас потребуется невероятно много программистской смекалки для того, чтобы решать самые тривиальные задачи ))) И это крайне полезно.
P.S. Я всегда топлю за то, чтобы изучать темки с высоким порогом входа, чтобы слабаки отваливались сразу 😎
👍41🔥8🤔5✍3❤2
Мечты частично сбываются :)
"...чтобы и на смену SQL наконец появилось тоже что-то взрослое"
=> Vanna
"Chat with your SQL database. Accurate Text-to-SQL Generation via LLMs using RAG"
+ модельку можно дотренировывать на проектную специфику.
Ну да, из F# доступен LINQ, но хотелось бы например полиморфную систему типов в SQL.
А пока что каждый день, пока в мэйнстримовские базы данных не добавлена поддержка sum types, где-то плачет котик...
"...чтобы и на смену SQL наконец появилось тоже что-то взрослое"
=> Vanna
"Chat with your SQL database. Accurate Text-to-SQL Generation via LLMs using RAG"
+ модельку можно дотренировывать на проектную специфику.
Ну да, из F# доступен LINQ, но хотелось бы например полиморфную систему типов в SQL.
А пока что каждый день, пока в мэйнстримовские базы данных не добавлена поддержка sum types, где-то плачет котик...
👍31🤔6🔥5⚡2❤1
Божественное поучение от святого cs Эрика Мейера. Внимайте! 🙏
(Rx Ix это Reactive Extensions / Interactive Extensions)
(Rx Ix это Reactive Extensions / Interactive Extensions)
🤔31❤10✍5👍5👌3
Писать код легко, и именно поэтому это сложно.
🤯27😁10❤7✍3🤔2
Хаскель: используя в линзе Ван Лаарховена диспетчеризацию, управляемую типом, вы сможете хранить данные по-разному -- в зависимости от типа.
Питон: просто зажми пробелы.
Питон: просто зажми пробелы.
😁21🤔12👍5❤3🫡1
Why do PHP developers prefer to work in the dark? Because they hate “light” errors.
😁34👍8🤔2❤1✍1
Просмотр исходного кода почти всегда быстрее, чем поиск ответа на StackOverflow или, тем более, чат с ChatGPT.
Потому что документация может быть устаревшей, текст, на котором обучался AI, может быть устаревшим, ответ на Stack Overflow может быть устаревшим...
Но если вы смотрите на правильный комит, то код никак не может быть устаревшим.
Код никогда не врёт. Это истина.
(в СильныеИдеи добавил сегодня 84-й материал на схожую тему:
"Как извлечь пользу из сторонних зависимостей")
Потому что документация может быть устаревшей, текст, на котором обучался AI, может быть устаревшим, ответ на Stack Overflow может быть устаревшим...
Но если вы смотрите на правильный комит, то код никак не может быть устаревшим.
Код никогда не врёт. Это истина.
(в СильныеИдеи добавил сегодня 84-й материал на схожую тему:
"Как извлечь пользу из сторонних зависимостей")
👍40🤔6✍2❤🔥1🫡1
Когда ты журналист, но в айтишке не очень разбираешься 😁
"Детям контактировать через гаджеты не привыкать. Да и экзамен после 11-го класса сдают на машине. Действующий программер научит лучше: каждые полгода что-то меняется в IT. В школах учат Python, и это неплохо. Но все-таки это язык программирования из 1990-х, и к нему обязательно нужна альтернатива посвежее, например, Go, C++… В зависимости от задач могут быть Scratch, SQL и др."
(в бумажной версии было напечатано "Pyton" :)
"Детям контактировать через гаджеты не привыкать. Да и экзамен после 11-го класса сдают на машине. Действующий программер научит лучше: каждые полгода что-то меняется в IT. В школах учат Python, и это неплохо. Но все-таки это язык программирования из 1990-х, и к нему обязательно нужна альтернатива посвежее, например, Go, C++… В зависимости от задач могут быть Scratch, SQL и др."
(в бумажной версии было напечатано "Pyton" :)
😁48🤯14🔥3🏆1