Шаблони за проектиране - Рубрика

Познати непознати или още веднъж относно използването на дизайнерски модели

Изписани са тонове статии и са публикувани много книги по темата за дизайнерските модели. Тази тема обаче не престава да бъде актуална, тъй като моделите ни позволяват да използваме готови, изпитани във времето решения, което ни позволява да намалим времето за разработка на проекти чрез подобряване на качеството на кода и намаляване на техническия дълг.

От появата на шаблоните за проектиране има все повече и повече примери за тяхното ефективно използване. И това е чудесно. Това обаче не беше без муха в мехлема: всеки език има свои собствени специфики. И golang - и още повече (дори няма класическия OOP модел). Поради това има вариации на шаблони във връзка с отделните езици за програмиране. В тази статия бих искал да засегна темата за дизайнерските модели във връзка с golang.

ООП е мъртъв, да живее ООП

шаблони

източници на вдъхновение

Няма (все още?) да анализирам получената ECS архитектура от този разговор, но ще се съсредоточа върху „лошия OOP“ (подобен на трика „плашило“) кода от самото начало. Ще покажа как всъщност би изглеждало, ако всички нарушения на принципите на ООД (обектно-ориентиран дизайн, обектно-ориентиран дизайн) бяха правилно коригирани.

Спойлер: коригирането на всички нарушения на OOD води до подобрения на производителността, подобни на преобразуванията на Aras към ECS, освен това използва по-малко RAM и изисква по-малко редове код от версията на ECS!

TL;DR: Преди да стигнете до заключението, че ООП е гадно и ECS правилата, направете си почивка и научете ООП (за да знаете как да използвате ООП правилно) и също така разберете релационния модел (за да знаете как да използвате ECS правилно). Прочетете повече »

Шаблони за проектиране в Cocos2d-x

Статията ще представлява интерес за разработчиците на Cocos2d-x и тези, които изучават модели. Направен е под формата на кратък синопсис, в който можете бързо да видите къде се прилага този или онзи модел в Cocos2d-x. Целта на статията не е пълно описание на всеки модел. Прочетете повече »

Шаблон за проектиране на обект-компонент-система - внедряване и примерна игра

рубрика

В тази статия искам да обсъдя шаблона за проектиране Entity-Component-System (ECS ). Можете да намерите много информация по тази тема в Интернет, така че няма да навлизам в обяснения, а ще говоря повече за собственото си изпълнение.

Част 1: Внедряване на модела Entity-Component-System в C++

Започни отначало. Пълният изходен код за моята реализация на ECS може да бъде намерен в хранилището на github.

Entity-Component-System, използвана предимно в игрите, е модел на проектиране, който осигурява огромна гъвкавост при проектирането на цялостната софтуерна архитектура [1] . Големи компании като Unity, Epic или Crytek използват този модел в своите рамки, за да дадат на разработчиците много богат инструмент, с който могат да разработят свой собствен софтуер. Можете да прочетете по-широка дискусия по тази тема в тези публикации [2,3,4,5] . Прочетете повече »

Как точно ще изглежда конкретно изпълнение на MVC зависи изцяло от рамката. В резултат на това получаваме много различни реализации, което е объркващо и води до объркване. Това е особено забележимо, когато в един проект се използват няколко рамки. Тази ситуация ме накара да се чудя: „Има ли по-добър начин?“. Прочететенапълно "

Текстова класификация с помощта на невронна мрежа в JAVA

„Нашата Лена излиза в отпуск по майчинство“, каза шефът, „така че трябва да потърсим заместник по време на нейното отсъствие. Ще разпределим някои от задачите, но какво да кажем за задачата за пренасочване на потребителски заявки?

Лена е нашето лице за техническа поддръжка. Едно от нейните задължения е разпределянето на входящи заявки по имейл между специалистите. Той анализира обжалването и определя редица характеристики. Например „Тип заявка“: системна грешка, потребителят просто се нуждае от консултация, потребителят иска някаква нова функционалност. Дефинира "Функционален модул на системата": счетоводен модул, модул за сертифициране на оборудване и др. След като въведе всички тези характеристики, тя пренасочва заявката към съответния специалист.

- Нека напиша програма, която ще прави това автоматично! Отговорих.

Това завършва увлекателния роман и преминаваме към техническата част.

шаблони

„Фабричен метод“ в разработка за Android. Най-добрият начин за работа с насочени известия

В тази статия бих искал да говоря за един от класическите дизайнерски модели в разработката на Android: методът Factory. Ще го проучим на примера за работа с Firebase Cloud Messaging (наричан по-долу FCM). Целта е да се предаде на начинаещите разработчици, които все още не са усвоили напълно всички предимства на ООП, важността на използването на техники за обектно-ориентирано проектиране.

Шаблони за дизайн на човешко лице

рубрика

Шаблоните за проектиране са начин за решаване на повтарящи се проблеми. По-точно, това са ръководства за решаване на конкретни проблеми. Това не са класове, пакети или библиотеки, които можете да поставитевашето приложение и очаквайте магията.

Както казва Wikipedia:

В софтуерното инженерство шаблонът за проектиране на приложение е решение за многократна употреба на повтарящ се проблем в контекста на специфична архитектура на приложението. Шаблонът е незавършено архитектурно решение, което може директно да се конвертира в изходен или машинен код. Това е описание на подход за решаване на проблем, който може да се приложи в различни ситуации.

Бъди внимателен

  • Моделите на дизайна не са сребърен куршум.
  • Не се опитвайте да ги прилагате насила, последствията могат да бъдат негативни. Не забравяйте, че шаблоните са начини зарешаване, а не занамиране на проблеми. Така че не прекалявайте.
  • Ако се прилагат правилно и на правилните места, те могат да бъдат спасителни. В противен случай ще имате още повече проблеми.

Статията съдържа примери в PHP 7, но нека това не ви притеснява, защото принципите, заложени в шаблоните, са непроменени. Освен това се внедряваподдръжка за други езици.

Шаблон за представяне в Laravel

Ако сте използвали Laravel във вашия проект достатъчно дълго, има вероятност вашите Eloquent модели да са станали доста големи. С течение на времето те стават все по-трудни за поддръжка, тъй като придобиват функционалност. Когато пишете код за всеки случай на употреба, когато използвате своите модели, е изкушаващо да „угоим“ нашите модели, докато не станат дебели.

проектиране

В такива ситуации можем да използваме модела Decorator, който ни позволява да изолираме специфичния за всеки случай код в отделен клас. Например, можем да използваме декоратори, за да разделим изобразяването на PDF документ, CSV документ или отговор на API. Прочететенапълно "

Unity и MVC: как да подобрим разработката на игри

Аз не съм истински заварчик и преводът на статията ми беше труден, така че ще го нарека безплатен - предварително ще изчистя съвестта си, ако някъде прекалено много перифразирам оригинала. Ще се радвам да посоча грешки в превода, граматика и др. в личен.

Програмистите обикновено опознават професията, започвайки с Hello World. След това си поставят все по-големи цели и всяка нова задача води до важен урок: колкото по-голям е проектът, толкова по-объркващ е кодът.

шаблони

И в големите, и в малките екипи никой не кодира както иска. Кодът трябва да може да се поддържа и разширява. В крайна сметка компанията, за която сте работили, не се свързва с вас всеки път, когато трябва да поправи грешка или да подобри кода. Да, и вероятно не искате това.

Ето защо има модели на проектиране; те са колекции от правила за стандартизирано структуриране на проекти, които помагат за разделянето и организирането на голяма кодова база и улесняват работата с непознат код. Прочетете още »

">