Фух, ну всё, я его опубликовал, по мнению Firefox, там 36-51 минута чтения:) Но я там по серединке сделал отбивку, на которой можно прерваться и продолжить в следующий раз:)
Алексей Жидков
Рациональный подход к декомпозиции систем на модули или микросервисы - Алексей Жидков
🔥7⚡1
ну чёт ТДД в исполнении Толкачёва мне уже не нравится:
1) два отдельных теста на статус и тело ответа
2) сразу же приехали моки
1) два отдельных теста на статус и тело ответа
2) сразу же приехали моки
👍1
Посмотрел матрицу компетенций, мне сейчас не особо актуально, но если вам надо уметь определять грейды и определять прогресс людей, то вам может быть полезно
👍1
Сижу в первом зале чтобы успеть потестить часть доклада. А в соседнем зале с ржут и апплодируют. Чуть-чуть завидно:)
👍1
Я думал у меня будет маленький зал, 20 слушателей, камерное выступление. А получилось так
👍17🔥4👏4
Фух, ну все, всем спасибо за поддержку, репортаж закончен.
Сейчас будет неделька передышки, а потом напишу про планы - их как всегда громадье:)
Сейчас будет неделька передышки, а потом напишу про планы - их как всегда громадье:)
👍6🔥5
Привет!
Восхитительная команда JUG Ru Group любезно дала мне разрешение на публикацию тестового прогона моего выступления на JPoint.
Версия с нормальным звуком и видео, но дрожащим голосом будет месяца через 3-4, обязательно здесь напишу:)
Слайды
Диаграмма эффектов Кэмп-а
Восхитительная команда JUG Ru Group любезно дала мне разрешение на публикацию тестового прогона моего выступления на JPoint.
Версия с нормальным звуком и видео, но дрожащим голосом будет месяца через 3-4, обязательно здесь напишу:)
Слайды
Диаграмма эффектов Кэмп-а
👍4🔥2
А ещё между делом мы перешагнули рубеж в 300 человек
Ещё вчера было 300, а сегодня уже 302.
Хотя практика показывает, что скоро будет небольшой откат
Ещё вчера было 300, а сегодня уже 302.
Хотя практика показывает, что скоро будет небольшой откат
💩2👍1
Привет!
Какой-то добрый человек, поставил моему докладу оценку "Плохо" за то, что я не нагуглил и не упомянул эту статью.
В статье описан подход к декомпозиции на базе Data Flow Diagram и он на первый взгляд и правда похож на то, что делаю я.
Авторы также напирают на рациональность и объективность декомпозиции.
Более того, у них есть два формальных алгоритма выполнения декомпозиции. После ручного построения диаграммы.
Но этот подход работает на более низком уровне абстракции и соответственно не подходит для декомпозиции систем на нужном мне уровне абстракции.
Авторы ищут границы внутри одной операции в терминах диаграммы эффектов.
Например, для их первого кейса с шестой страницы, диаграмма эффектов состояла бы из двух элементов - операции "Извлечь информацию о фильмах" и ресурса "Коллекция фильмов" и декомпозировать было бы нечего.
А они же без обоснования предлагают бить эту операцию на три микросервиса - Webpage Crawling, Text Extraction и Text Structuring.
Соответственно, эту штуку можно попробовать применить для декомпозиции отдельной операции, если есть организационный или операционные причины сделать эту операцию распределённой.
И к слову о DFD - я её один раз применял, и результаты мне понравились.
Мне надо было реализовать довольно волосатую функциональность обновления данных по сообщениям из очереди, с нетривиальным трансформациями и формированием ответа.
Я сделал подходов пять, наверное, реализовать эту штуку, пока не догадался разрисовать алгоритм с помощью DFD.
А как разрисовал - дальше уже практически за один проход закодил.
В общем DFD прикольная штука, бывает полезной - советую ознакомится и попробовать использовать в сложных случаях.
А в целом доклад зашёл, хороших оценок существенно больше чем плохих
Какой-то добрый человек, поставил моему докладу оценку "Плохо" за то, что я не нагуглил и не упомянул эту статью.
В статье описан подход к декомпозиции на базе Data Flow Diagram и он на первый взгляд и правда похож на то, что делаю я.
Авторы также напирают на рациональность и объективность декомпозиции.
Более того, у них есть два формальных алгоритма выполнения декомпозиции. После ручного построения диаграммы.
Но этот подход работает на более низком уровне абстракции и соответственно не подходит для декомпозиции систем на нужном мне уровне абстракции.
Авторы ищут границы внутри одной операции в терминах диаграммы эффектов.
Например, для их первого кейса с шестой страницы, диаграмма эффектов состояла бы из двух элементов - операции "Извлечь информацию о фильмах" и ресурса "Коллекция фильмов" и декомпозировать было бы нечего.
А они же без обоснования предлагают бить эту операцию на три микросервиса - Webpage Crawling, Text Extraction и Text Structuring.
Соответственно, эту штуку можно попробовать применить для декомпозиции отдельной операции, если есть организационный или операционные причины сделать эту операцию распределённой.
И к слову о DFD - я её один раз применял, и результаты мне понравились.
Мне надо было реализовать довольно волосатую функциональность обновления данных по сообщениям из очереди, с нетривиальным трансформациями и формированием ответа.
Я сделал подходов пять, наверное, реализовать эту штуку, пока не догадался разрисовать алгоритм с помощью DFD.
А как разрисовал - дальше уже практически за один проход закодил.
В общем DFD прикольная штука, бывает полезной - советую ознакомится и попробовать использовать в сложных случаях.
А в целом доклад зашёл, хороших оценок существенно больше чем плохих
👍1
Привет!
Не большой инсайтик с утра.
Следствие из закона Конвея - если систему с микросервисной архитектурой делает одна команда (или один человек - я и такое видел), то она обречена на создание распределённого монолита.
Не большой инсайтик с утра.
Следствие из закона Конвея - если систему с микросервисной архитектурой делает одна команда (или один человек - я и такое видел), то она обречена на создание распределённого монолита.
👍1
Привет!
Ещё немного вас поспамалю на волне JPoint-а:)
Я там познакомился лично с Максом Моревым - моим братом-близнецом по подходу к разработке:)
Он работает практически аналогично тому, как это делаю я - пока увидел только пару незначительных различий - вместо диаграммы эффектов у него получается применять DDD, и Максу зашёл ROP на монадах (а я делаю ROP на охранных выражениях).
Но что он сделал из серии мишшн импосибл, на мой взгляд - затащил этот подход в Газпромбанк и делает по этому подходу цифровой рубль 😮
Так что идеи, которые я продвигаю в этом канале вполне возможно продвигать и в кровавый энтерпрайз:)
Так же у Макса есть канал codemonsters.log - пока он не очень активный, но думаю новые подписчики замотивируют Макса писать больше:) А ему, совершенно точно, есть что написать:) В общем подписывайтесь:)
Ещё немного вас поспамалю на волне JPoint-а:)
Я там познакомился лично с Максом Моревым - моим братом-близнецом по подходу к разработке:)
Он работает практически аналогично тому, как это делаю я - пока увидел только пару незначительных различий - вместо диаграммы эффектов у него получается применять DDD, и Максу зашёл ROP на монадах (а я делаю ROP на охранных выражениях).
Но что он сделал из серии мишшн импосибл, на мой взгляд - затащил этот подход в Газпромбанк и делает по этому подходу цифровой рубль 😮
Так что идеи, которые я продвигаю в этом канале вполне возможно продвигать и в кровавый энтерпрайз:)
Так же у Макса есть канал codemonsters.log - пока он не очень активный, но думаю новые подписчики замотивируют Макса писать больше:) А ему, совершенно точно, есть что написать:) В общем подписывайтесь:)
Fsharpforfunandprofit
Railway Oriented Programming
Slides and videos explaining a functional approach to error handling
❤1👍1
Привет!
Разобрался с делами, накопившимися после конфы, перевёл немного дух и пишу обещанный пост с моими дальнейшими планами. Ну как планами - я не человек плана, поэтому это те области, которые на данный момент я бы хотел затронуть в рамках Эргономичного подхода. Без сроков и даже порядка.
Список того, над чем ещё предстоит поработать выглядит так:
* Ретро Проекта Э
* Эргономичная структура програм
* Функциональная архитектура
* Классический подход к ТДД
- Фокус на тестировании требований
* Обработка ошибок
* ПЕРСИСТАНС!
- Посмотреть на Exposed + отказ от агрегатов и слоя сущностей
- iArm
* В целом описать процесс разработки от "Хочу зюзюку" до "Вот ваша зюзюка в проде"
* Чеклисты/критерии качества процесса и кодовой базы
* Матрица компетенций разработчика по Эргономичному подходу
Чуть подробнее расписал эти пункты в микропосте
Моими темпами, тут без персистанса мне работы ещё лет на 5 минимум, а с персистансом - на все 10. Так что стей тюнед, будет интересно:)
#ergo_approach@ergonomic_code
Разобрался с делами, накопившимися после конфы, перевёл немного дух и пишу обещанный пост с моими дальнейшими планами. Ну как планами - я не человек плана, поэтому это те области, которые на данный момент я бы хотел затронуть в рамках Эргономичного подхода. Без сроков и даже порядка.
Список того, над чем ещё предстоит поработать выглядит так:
* Ретро Проекта Э
* Эргономичная структура програм
* Функциональная архитектура
* Классический подход к ТДД
- Фокус на тестировании требований
* Обработка ошибок
* ПЕРСИСТАНС!
- Посмотреть на Exposed + отказ от агрегатов и слоя сущностей
- iArm
* В целом описать процесс разработки от "Хочу зюзюку" до "Вот ваша зюзюка в проде"
* Чеклисты/критерии качества процесса и кодовой базы
* Матрица компетенций разработчика по Эргономичному подходу
Чуть подробнее расписал эти пункты в микропосте
Моими темпами, тут без персистанса мне работы ещё лет на 5 минимум, а с персистансом - на все 10. Так что стей тюнед, будет интересно:)
#ergo_approach@ergonomic_code
👍6🔥2❤🔥1
Привет!
Не спрашивайте как, но я тут наткнулся на очередную любопытную статью - Analyzing Error-Prone System Structure.
В ней авторы приводят результаты анализа реальной системы на предмет зависимости количества и стоимости исправления ошибок в подсистемах от сцепленности и функциональной связанности подсистем.
При том для оценки сцепленности и функциональной связанности используют штуку, которая очень похожа на то, что я делаю в декомпозиции на базе эффектов - взаимодействие подпрограмм (операций) через глобальные переменные (ресурсы).
И приходят к выводу, что подсистемы обладающие высокой функциональной связанностью и низкой сцепленностью содержат в 5 раз меньше ошибок на тысячу строк кода.
#papers@ergonomic_code #coupling@ergonomic_code #effects_diagram@ergonomic_code
Не спрашивайте как, но я тут наткнулся на очередную любопытную статью - Analyzing Error-Prone System Structure.
В ней авторы приводят результаты анализа реальной системы на предмет зависимости количества и стоимости исправления ошибок в подсистемах от сцепленности и функциональной связанности подсистем.
При том для оценки сцепленности и функциональной связанности используют штуку, которая очень похожа на то, что я делаю в декомпозиции на базе эффектов - взаимодействие подпрограмм (операций) через глобальные переменные (ресурсы).
И приходят к выводу, что подсистемы обладающие высокой функциональной связанностью и низкой сцепленностью содержат в 5 раз меньше ошибок на тысячу строк кода.
#papers@ergonomic_code #coupling@ergonomic_code #effects_diagram@ergonomic_code
🔥5👍1
Привет!
Провёл небольшой опрос среди 23 студентов 3его курса ФИТ НГУ - думаю, вам результаты тоже могут быть интересны и полезны:)
ТЛДР - 80% разработчиков без опыта желающих найти работу её находят уже на 3-ем курсе.
Вопрос: вы трудоустроены?
Результаты:
- Да, разработчиком, с зп >= 300 р/час* - ~8% (2 человека)
- Да, разработчиком, с зп < 300 р/час - 26% (6)
- Да, неразработчиком - 13% (3)
- Пытался (рассылал резюме), но пока не взяли - 8% (2)
- Нет, пока не искал работу - 47% (11)
* зп считать как <сумма зп за 6 мес.> / <кол-во часов работы за 6 мес. по вашей оценке>
#hr@@ergonomic_code
Провёл небольшой опрос среди 23 студентов 3его курса ФИТ НГУ - думаю, вам результаты тоже могут быть интересны и полезны:)
ТЛДР - 80% разработчиков без опыта желающих найти работу её находят уже на 3-ем курсе.
Вопрос: вы трудоустроены?
Результаты:
- Да, разработчиком, с зп >= 300 р/час* - ~8% (2 человека)
- Да, разработчиком, с зп < 300 р/час - 26% (6)
- Да, неразработчиком - 13% (3)
- Пытался (рассылал резюме), но пока не взяли - 8% (2)
- Нет, пока не искал работу - 47% (11)
* зп считать как <сумма зп за 6 мес.> / <кол-во часов работы за 6 мес. по вашей оценке>
#hr@@ergonomic_code
👍2