Сообщество - Лига программистов

Лига программистов

1 728 постов 11 639 подписчиков

Популярные теги в сообществе:

ЧЕТЫРЕ РАЗА! — ПЕРЕПИСЫВАЛ... проект! (Supabase, Strapi, AppWrite, Directus, FilamentPHP)

ЧЕТЫРЕ РАЗА! — ПЕРЕПИСЫВАЛ... проект! (Supabase, Strapi, AppWrite, Directus, FilamentPHP) Программирование, Javascript, Backend, Cms, Mysql, Postgresql, IT, Фриланс, Длиннопост, PHP, Laravel, Nodejs, Typescript, Личный опыт, React

AppWrite, SupaBase, Directus, Strapi - не понравились

AppWrite

Есть всё, кроме массового импорта. Мощнейшая вещь.

Но настройка его сложна для новичка, и жрет о 2-4гб оперативки на сервере.

SupaBase

Крутая штука, не допёр как сделать авторизацию 🤣

И тоже с настройкой были траблы.

Плюс мне не нравится HTTP Basic Авторизация по захардкоженным credentials в конфиге прокси сервера.

За то импорт и экспорт нормальный есть

Directus

Очень крутая штука, особенно его Flows.

Стал сильно продуманнее за прошедшие полгода с моей встречи с ним.

Но все так же документация меня вымораживает. Много не раскрытых тем, и скрытых, не упомянутых ограничений.

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

В остальном это комбайн для супер быстрого старта, толком даже без настроек, всё мышкой можно сделать.

Ограничения так же можно обойти, сделав простое расширение, я так пол логики в прошлом проекте сделал, но теряется весь шарм легкости и наглядности. 🥲

Думаю ребята в нужном направлении двигаются, и их время просто ещё не настало, держу звезду на гитзабе за них.

Strapi

HeadlessCMS, да. Крутая, да. Популярная? А вот хз-хз.

Вроде раньше много где встречал про неё статьи, и на гитхабе звезд куча насыпано.

НО КАК? Как может не быть у такой популярной CMS функционала для импорта/экспорта, хотя бы банального!?

Он справделивости ради есть в официальном маркете расширений, но... На прошлую версию 😖 Не без обратной совместимости 😩

Ну я его тоже оставил откисать.

FilamentPHP

Тяжелая артилерия из TALL Stack компонентов и не то что целой системы, а уже целой ЭКОсистемы для любого рода панелей, да еще и на базе Laravel 😤

Ну это козырь был.

Я пытался, честно, вот даже описал что меня останавило, и на каждый из вариантов я потратил минимум 4 часа времени.

Думал ребята допили свои проекты, обещающие супер быстрый старт, но везде какие-то проблемы...

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

Меня просто удивляет продуманность этого Filament. Баги есть, не без них, конечно. Как оказалось без ошибок ни то, что люди, роботы не справятся 🙃 (Отсылка к нейросетям)

Тут я за пару дней уложился извернуться и не сорвать сроки, а сделано:

  • Админка

  • Бизнес логика

  • Token Based Авторизация по API
    (пришлось потратить полдня, чтобы разобраться в этой теме, так как я её намеренно игнорировал последние 3 года)

  • API c аутентификацией по токену

  • Расширение для хрома на WXT + React (TanStack Router, Query, Store)

  • Для расширения хромовского - я вообще только с WXT работал и голым React, чисто для верстки.

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

Но с TanStack я не работал. Как-то раз для крипто проекта пытался его настроить и за целый день - так и не вышло. Сейчас же скажу - это мастхэв! Очень крутая штука!

Ну и отказался от Tailwind и SCSS в пользу CSS Modules в паре с clsx. И я не сказал бы, что стили писать долго. В моем случае я заказы беру вообще без дизайна и предпочтений, так что 50-80% от них пишет нейросеть, а я просто не претендую на произведение искусства 😆

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

Показать полностью

Где используется C++?

Я собрал небольшой список известных проектов с открытым или частично открытым кодом. Для каждого пункта прикреплена ссылка на гитхаб, чтобы можно было оценить в каком количестве и для каких целей используется C++. Если я что-то пропустил, напишите, пожалуйста, в комментариях в формате "проект-ссылка на репозиторий"🙂

Игровые движки:
▪️Unreal Engine https://github.com/epicgames
▪️Unity https://github.com/unity-technologies

Движки браузеров:
▪️Mozilla Firefox и его движок Gecko https://github.com/mozilla/gecko-dev
▪️Safari и его движок WebKit https://github.com/WebKit/WebKit

Десктопные приложения:
▪️Десктопная версия Telegram https://github.com/telegramdesktop/tdesktop

Наука, инженерия, ML:
▪️MATLAB https://github.com/mathworks
▪️TensorFlow https://github.com/tensorflow/tensorflow
▪️OpenCV https://github.com/opencv/opencv

Графика:
▪️Вот тут должен быть Adobe Photoshop, но его исходников в открытом доступе нет:(
▪️Blender https://github.com/blender/blender
▪️Autodesk https://github.com/Autodesk/Aurora

Базы данных:
▪️MongoDB https://github.com/mongodb/mongo
▪️MySQL https://github.com/mysql/mysql-server

Виртуализация:
▪️VirtualBox https://github.com/mirror/vbox

UPD:

Технические посты тут t.me/neverending_cpp

Показать полностью

С чего начать изучения ООП?

Я бы рекомендовал начать с вдумчивого и неторопливого чтения книги Гради Буч "Объектно-ориентированный анализ и проектирование". Книга содержит в себе в основном теоретические, я бы даже сказал академические, изложения принципов ООП. В книге мало кода, поэтому её могут читать даже новички без опыта в программировании. Прочитав эту книгу вы сможете с легкостью проходить теоретическую часть собеседования, а также поддерживать дискуссии на темы пользы и вреда множественного наследования, инвариантов и их места в инкапсуляции и т.д.

А какие ваши любимые книги по основам ООП?

С чего начать изучения ООП? Кросспостинг, Pikabu Publish Bot, C++, Программирование, IT, Книги, Самообразование

UPD:

Технические посты тут t.me/neverending_cpp

Показать полностью 1

Пятая степень — палиндром?

Существует ли пятая степень натурального числа, большего 1, являющаяся десятичным палиндромом? Кубов-то полно таких, а вот пятой, кажется, ни одной. Настя утверждает, что проверила все пятые степени чисел от 2 до миллиарда, но безуспешно. Хотя Настя могла и прогу неправильно написать, так что уверенности пока нет. Пожалуйста, помогите разобраться.

Как уложить тестирование фичи внутрь спринта?

Когда команда с горем пополам научилась попадать с разработкой запланированного внутрь спринта, то встает следующий вопрос - а почему мы все равно не успеваем впихнуть то, что уже было разработано в релиз после спринта?

У нас именно так и получилось. Вначале разработчики не использовали никакой системы при планировании спринта - это было больше похоже на индивидуальное планирование, каждый брал себе столько сколько сможет унести, и конечно результат спринта был достаточно рандомным. Что конечно расстраивало заказчиков, никто не понимал - когда же будет доставка конкретной фичи?

После внедрения poker planning и story points, ситуация с прогнозированием разработки улучшилась значительно. Но заказчики (Product Managers в нашем случае) инстинктивно воспринимали завершение разработки как готовность фичи. Это конечно было ошибочное ожидание, более того, когда PM смотрели на каждую фичу и видели:

Фича A -> 3 Story Points

Фича B -> 8 Story points

То ошибочно думали, что тестирование будет занимать пропорциональное количество времени, то есть например:

Фича A -> 1 день?

Фича B -> 2 дня?

Но в реальности объем тестирования никак не был связан с Dev Effort по разработке конкретной фичи. Все могло быть с точностью до наоборот:

Фича A -> 3 дня

Фича B -> 1 день

Дело в том, что тестирование очень часто находит ошибки в новой фиче, что вызывает еще один цикл исправлений (дополнительный Dev Effort), и еще один цикл тестирования/перетестирования. И чем больше объем тестирования конкретной фичи, тем дольше цикл перетестирования. А чем более сложная фича (не равно емкости Dev Effort), тем больше циклов исправлений и перетестирования ожидается.

Можно предложить укладывать циклы тестирования и перетестирования в изначальный Dev Effort в Story Points, но Capacity команды Тестирования не входит в команду Dev, поэтому так не получится.

Поэтому мы решили попробовать следующий подход. Команда тестирования на стадии прототипирования фичи (до начала разработки), пишет предварительные тесты для покрытия этой фичи, и должна давать отдельную оценку Test Effort, включающую риски по возможным багам, и их переработкой.

Чтобы эту оценку не путать и не складывать с Dev Effort, мы решили сделать ее не цифровой, а символьной, в размерах маек S, M, L, XL.

Мы долго думали, должна ли шкала оценки быть нелинейной (фибоначи например), как Dev Effort в Story Points. И решили, что в этом не необходимости. Дело в том, что заказчик (PM), хочет знать, когда он получит фичу в Прод, и при планировании спринта у него есть выбор, состоящий из Dev Effort и Test Effort, который либо "влазит" в спринт, либо нет. Тогда при планировании сразу понятно, что с большой вероятностью будет доставлена, а что потребует больше одного спринта.

Получилась вот такая схема:

Как уложить тестирование фичи внутрь спринта? Тестирование, QA, Программа, Scrum, Agile, Гайд, Приложение, Инновации, Спринт, Sprint, Чат-бот, Тренд, Сайт, Google, Длиннопост

Прогноз усилий по тестированию в размерах маек

То есть, чтобы впихнуть L фичу, надо отдать ее тестировщикам в конце первой недели спринта. Для M, S во вторник, четверг второй недели соотеcтвенно. Для XL зарелизить в рамках одного спринта шансов нет!

А как у Вас с этой проблемой?

Показать полностью 1

Почему вы выбрали C++?

По моему опыту многие студенты делают выбор в пользу С++ не осознанно и в итоге тратят много сил, времени, денег и не достигают своих целей. Как же понять, что вы не ошиблись с выбором, и С++ именно тот язык, который поможет вам в достижении ваших целей?

Прежде всего, нужно определиться с вашей конечной целью и ответить на вопрос: что я хочу получить, после того, как стану С++ разработчиком? Комфортные условия труда? Зарплату выше средней по региону? Профессиональное признание? При ответе на эти вопросы необходимо быть максимально честным с собой. Да, для друзей, коллег и рекрутеров можно придумать красивую легенду, что ... софт для SpaceX написан на C++ и через несколько лет вы мечтаете принять участие в подобном проекте... И это прекрасно! Но может быть дело банально в "на моем текущем рабочем месте я смогу получать максимум 100к и этот потолок мне не пробить до пенсии"? И это тоже весомая причина выучить С++ и стать разработчиком, не стоит её стесняться.

Далее, необходимо осознать (именно осознать, а не принять к сведению), что С++ - это один из самых сложных языков в коммерческой разработке. Точка входа у С++ разработчиков действительно высока. Вы готовы потратить минимум год на изучение основ язык, а после этого еще примерно год на поиск первой работы?
Как бы это не казалось смешным, но именно на старте обучения стоит задуматься на тем, "кем вы видите себя через 5-10 лет". Да, должность техлида или архитектора проще всего получить имея опыт разработки. А вот на должность тимлида или руководителя проекта можно прийти, например, из тестирования. И в случае тестирования путь будет в разы короче.

UPD:

Технические посты тут t.me/neverending_cpp

Вопрос из ленты «Эксперты»

Здравствуйте! Не могли бы вы мне помочь с моей маленькой программой на kotlin?

Привет всем! Я был бы рад, если бы вы помогли мне с моей маленькой программой kotlin. Это небольшой генератор паролей. Проблема у меня в том, что когда я перезапускаю программу, пароли перестают копироваться, а если нет, то все нормально. Я думаю, проблема в сохранности. Подскажите, как исправить эту ошибку?

https://onecompiler.com/kotlin/42xn9xbyd - Залил код сюда. В целом он работает помимо того момента, что я описал выше.

Каждый год зимой происходят странности

Например, что-то пропадает. У одних важные вещи, у других новогоднее настроение. В этот раз — потерялись помощники Деда Мороза. Но есть хорошая новость: вы можете их найти! Вернее, помочь им найтись…

IT курсы. Серебряная пуля или развод на деньги?


Я более 2-х лет совмещаю основную работу с преподаванием в онлайн-школах и частной практикой. Удивительно, но онлайн-курсы при всей их противоречивости и неоднозначности до сих очень востребованы. Например, последний поток онлай-школы, в которой я сейчас преподаю, стартовал пару месяцев назад и набрал более 30 человек. Заметьте, что это не хайповое тестирование или Go, это базовый курс по старичку С++.

Курсы нельзя однозначно описать "хороший/плохой". Польза от курса напрямую зависит от того, с каким уровнем подготовки студент приходит на курс. На основе моего опыта я бы выделил три категории студентов.

Студент без опыта. Ценность курсов для этих студентов стремится к нулю. Почему? Всё дело в механике курса. Курсы - это бизнес, а бизнес - это время. Большая часть основ С++ (да и любого ЯП) требует очень много времени на осознание, а еще больше на доведение знаний до уровня навыка. В любой курс закладывается время, за которое студент должен пройти этот курс. Попасть в этот график новичку просто не реально. Периодически у студента будут возникать потребность остановиться на какой-то теме и уделить ей чуть больше времени (от недели по пары месяцев, и это вполне нормально).  Да, онлайн-школы предлагают дополнительный запас времени на прохождение курса: перевод на другой поток или изучение программы в своем темпе. Увы, в подавляющем большинстве случаев, эти методы работают крайне неэффективно и по своей сути направлены на максимальное отодвигание того момента, когда студент обратится к школе за возвратом денег за курс.

Студент с опытом или уже практикующий разработчик. С категорией "студент с опытом" все понятно: студент прочитал Липмана, написал свой калькулятор и не знает, что делать дальше. "Практикующий разработчик" категория очень объемлющая. Сюда бы я отнес, во-первых, джунов с 1-2 годами опыта и далее по списку:
- разрабы из научных институтов/заводов и прочих гос. учреждений;
- разрабы с опытом на другом ЯП;
- разрабы из маленьких кампаний, работающих на старом стеке и создающие простые или узкоспециализированные продукты.
Т.е. это те разрабы, которые по времени в профессии уже давно не джуны, но имеют либо объективно слабый уровень знаний С++, либо просто отстали от современного стека.
Этой категории студентов курсы будут действительно полезны, потому как за достаточно короткий срок они смогут прокачать свой уровень до актуального на рынке стека.

Middle+ и выше. В этой точке разработчик уже научился получать знания самостоятельно. Но у него по-прежнему будет возникать желание воспользоваться серебряной пулей и за пару месяцев качнуться до архитектора в хайлоаде и параллельно освоить Go. Увы, подавляющее большинство курсов не сможет дать разработчикам уровня middle+ и выше знания в том объеме и в том качестве, которые им нужны.

UPD:

Технические посты тут t.me/neverending_cpp

Показать полностью
Отличная работа, все прочитано!