TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #247 · 11.03

Попробовали на работе предметно-ориентированное проектирование (Domain Driven Design). Это такой способ построения архитектуры, когда ты (чаще всего с помощью системы типов и ООП) описываешь физическую суть вещей, которые представлены в твоей программе. Например, если в программе есть объект "Книга", то её нужно снабдить свойствами, которые бывают у книг в реальности: число страниц, автор, язык, тип обложки и т.д. При этом данные свойства должны быть такими, чтобы присвоить им нереалистичные значения было нельзя. Допустим, число страниц не может быть отрицательным (и скорее всего в реальном мире не может быть нулём). При попытке установить отрицательное число страниц программа должна выбросить исключение. А совсем в идеальном случае -- не дать этого сделать программисту на уровне статического анализа кода. Описав все свойства книги, вы снабжаете её операциями, которые над ней можно сделать. Например, из книги можно вырвать страницу, и при этом число страниц уменьшается. Нет такого случая, когда можно вырвать страницу без изменения числа страниц. Вы строго программируете эту зависимость, делаете у книги метод "Вырвать страницу", а он уже уменьшает число. Кстати, свойство "Число страниц" при этом нельзя переназначить в уже созданной книге. Можно только создать книгу, передав в её конструктор (так называется в программировании функция создания объектов) заданное число страниц. Но поменять число страниц можно только специальными методами "Вырвать страницу" и "Вклеить страницу". С помощью этого подхода вы гарантируете, что ваши объекты всегда находятся в валидном состоянии -- то есть таком, которое возможно в реальной жизни с объектом, представленным программой. Плюсы подхода очевидны: меньше число ошибок. Код описывает сам себя, и программист, если не лезет внутрь объекта "Книга", вообще не сможет сделать с книгой ничего недопустимого. Минусы, думаю, тоже понятны: изначально проектировать сложнее, нужно учесть много нюансов, писать тесты. Время разработки изрядно растёт. Изменение требований даётся дороже: например, если каким-то образом в ваш книжный магазин поступят книги со страницами из кевлара, которые невозможно вырвать :) Но первый проект с этим подходом мы сдали хорошо, без багов. Лучше, чем многие предыдущие. #dev

Hashtags

Резултати

Намерени 1 подобни публикации

Търсене: #aisha2

当前筛选 #aisha2清除筛选

አይሻ-2፡ የቀጠናው የልማት ጮራ እና የኢትዮጵያ የታዳሽ ኃይል ልዕልና! ******************** ዛሬ በሀገራችን ሌላ ድንቅ ታሪክ ተፅፏል! እነሆ ኢትዮጵያ በኢነርጂ ዘርፍ የጀመረችውን ታላቅ ጉዞ የሚያረጋግጠው የአይሻ-2 የንፋስ ኃይል ማመንጫ ፕሮጀክት በይፋ ተመርቆ ሥራ ጀምሯል። ይህ ፕሮጀክት ለኢትዮጵያ ብቻ ሳይሆን ለመላው የቀጠናው ሀገራት አዲስ የተስፋ ብርሃን ይዞ ብቅ ብሏል። የቀጠናዊ ትስስር ዋነኛው መሰረት አይሻ-2 ከኤሌክትሪክ ኃይል ማመንጫነት ባለፈ፣ የምስራቅ አፍሪካ ሀገራትን በኢኮኖሚና በልማት ለማስተሳሰር ለተያዘው ግብ ትልቅ አቅም ነው። ይህ ፕሮጀክት የቀጠናውን የልማት ተስፋ የሚያለመልም፣ የንግድና የኢንዱስትሪ እንቅስቃሴን የሚያፋጥን እንዲሁም በሀገራት መካከል ያለውን ትብብር ወደ ላቀ ደረጃ የሚያሸጋግር የጋራ ዕድገት እና ትስስር ምልክት ነው። ኢትዮጵያ ኃይልን በማመንጨትና ለአጎራባች ሀገራት በማከፋፈል፣ የቀጠናው የኢኮኖሚ ሞተር የመሆን ሚናዋን በተግባር እያረጋገጠች ትገኛለች። ኢትዮጵያ፡ የአፍሪካ የታዳሽ ኃይል ማዕከል ዛሬ ኢትዮጵያ በአፍሪካ የታዳሽ ኃይል ግንባር ቀደም ማዕከል እየሆነች መምጣቷን ዓለም እያየው ነው። ከወንዞቻችን፣ ከቆላማ አካባቢዎች ንፋስና ከምድር ውስጥ እንፋሎት የምናመነጨው “አረንጓዴ ኃይል” (Green Energy) የሀገራችንን ተወዳዳሪነት ከፍ አድርጎታል። አይሻ-2 ኢትዮጵያ አካባቢን የማይበክሉ የኃይል አማራጮችን በማስፋፋት ረገድ በዓለም አቀፍ ደረጃ ያላትን ቁርጠኝነትና የመሪነት ሚና በጉልህ የሚያሳይ ማረጋገጫ ነው። ርዕይን ወደ ተግባር የመለወጥ ብቃት ይህ ግዙፍ ፕሮጀክት ኢትዮጵያ ያላትን ርዕይ ወደ ተግባር ለመለወጥ ቁርጠኛ ብቻ ሳትሆን፣ ታላላቅና ውስብስብ የሆኑ የልማት ሥራዎችን የመፈፀም በቂ አቅም ያላት መሆኑንም በተግባር አሳይቷል። የተረጋጋና አስተማማኝ የኃይል አቅርቦት በቴክኖሎጂ ለሚመራ ኢኮኖሚ ዋነኛው የጀርባ አጥንት እንደመሆኑ መጠን፣ አይሻ-2 ለኢንዱስትሪዎቻችን መነቃቃትና ለዜጎቻችን ኑሮ መሻሻል የማይተካ ሚና ይጫወታል። በበረሃው ንፋስ የታጀበው ይህ የልማት ጉዞ፣ የነገ ብልጽግናችንን የምናረጋግጥበት የኩራት መንገዳችን ነው። የኢትዮጵያ ብርሃን ከራሷ አልፎ ለጎረቤቶቿ እንዲተርፍ የተጀመረው ሥራ ተጠናክሮ ይቀጥላል፤ እንኳን ደስ አለን! #Aisha2#RenewableEnergy#RegionalIntegration#EthiopiaRising#GreenEnergy#EnergyHub