Запитання з тегом «architecture»

Дизайн та опис програмної системи високого рівня. Архітектурний дизайн відганяє деталі реалізації, алгоритми та подання даних, щоб сконцентруватися на взаємодії компонентів "чорної скриньки".

30
Як створити власну мову програмування та компілятор для неї [закрито]
Я ретельно займаюся програмуванням і натрапив на мови, включаючи BASIC, FORTRAN, COBOL, LISP, LOGO, Java, C ++, C, MATLAB, Mathematica, Python, Ruby, Perl, JavaScript, Assembly та ін. Я не можу зрозуміти, як люди створюють мови програмування та розробляють компілятори для цього. Я також не міг зрозуміти, як люди створюють ОС, …

17
Чи справді передчасна оптимізація є коренем усього зла?
Моя колега сьогодні здійснила клас під назвою ThreadLocalFormat, який, в основному, перемістив екземпляри класів Java Format в локальний потік, оскільки вони не є безпечними для потоків і "відносно дорогими" для створення. Я написав швидкий тест і підрахував, що я можу створити 200 000 екземплярів на секунду, запитав, чи він створює …

16
Використовуючи Принцип єдиної відповідальності, що являє собою "відповідальність?"
Здається, досить зрозуміло, що "Принцип єдиної відповідальності" не означає "лише одне". Ось для чого методи. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Боб Мартін каже, що "заняття повинні мати лише одну причину для зміни". Але це …

10
Яка перевага формату маленького ендіану?
Процесори Intel (і, можливо, деякі інші) використовують для зберігання маленький формат ендіан. Мені завжди цікаво, чому хтось хотів би зберігати байти у зворотному порядку. Чи має цей формат якісь переваги перед великим ендіанським форматом?

17
Чи краще повернути NULL або порожні значення з функцій / методів, де значення повернення відсутнє?
Я шукаю тут рекомендацію. Я бореться з тим, чи краще повернути NULL або порожнє значення методу, коли значення повернення відсутнє або його неможливо визначити. Взяти для прикладу такі два способи: string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person with a matching …

9
Чи є якась "реальна" причина, коли багаторазове спадкування ненавидять?
Мені завжди подобалася думка про підтримку декількох успадкованих мов. Найчастіше, хоча це навмисно пропало, і передбачувана "заміна" - це інтерфейси. Інтерфейси просто не охоплюють все одне й те саме багаторазове успадкування, і це обмеження час від часу може призвести до збільшення кодового коду. Єдина основна причина, про яку я коли-небудь …

8
Критика та недоліки ін'єкції залежності
Ін'єкційна залежність (DI) - добре відома та модна модель. Більшість інженерів знають його переваги, як-от: Можливість / простота ізоляції при тестуванні одиниць Явно визначають залежності класу Сприяння гарному дизайну (наприклад, принцип єдиної відповідальності (SRP)) Увімкнення швидкого переключення реалізацій ( DbLoggerзамість ConsoleLoggerнаприклад) Я вважаю, що існує загальна думка про галузь, що …

10
Не використовуйте "Static" в C #?
Я подав заявку, яку я написав іншим архітекторам на перевірку коду. Один з них майже одразу написав мені відповідь і сказав: "Не використовуйте" статичні ". Ви не можете писати автоматичні тести зі статичними класами та методами." Статичного "слід уникати". Я перевірив і повністю 1/4 моїх занять позначені "статично". Я використовую …

5
Чи не вказівки щодо використання асинхронізування / очікування використання в C # не суперечать поняттям гарної архітектури та шару абстракції?
Це питання стосується мови C #, але я очікую, що він охопить і інші мови, такі як Java або TypeScript. Microsoft рекомендує кращі практики використання асинхронних дзвінків у .NET. Серед цих рекомендацій виберемо дві: змінити підпис методів асинхронізації, щоб вони повернули Завдання або Завдання <> (в TypeScript це буде Обіцянкою …
103 c#  architecture  async 

9
Чому я повинен використовувати ін'єкцію залежності?
Мені важко шукати ресурси щодо того, чому мені слід використовувати ін'єкцію залежності . Більшість ресурсів, які я бачу, пояснюють, що він просто передає екземпляр об'єкта в інший екземпляр об'єкта, але чому? Це лише для чистішої архітектури / коду чи це впливає на продуктивність в цілому? Чому я повинен робити наступне? …

17
Чи є гарною ідеєю розробити архітектуру, думаючи, що класи інтерфейсу користувача можуть бути замінені інтерфейсом командного рядка?
На сторінці "Код повного" на сторінці 25 сказано, що добре було б легко замінити звичайні класи користувальницького інтерфейсу командним рядком. Знаючи його переваги для тестування, що з проблемами, які він може спричинити? Чи справді ця додаткова робота окупить веб-та мобільні проекти? Як щодо малих та середніх проектів; чи застосовуються ті …

10
Чому Алан Кей сказав: "Інтернет був так добре зроблений, але Інтернет був любителями"?
Гаразд, так я перефразував. Повна цитата: Інтернет був зроблений настільки добре, що більшість людей вважають це природним ресурсом, як Тихий океан, а не як техногенним. Коли востаннє технологія такого масштабу була настільки безвідмовною? Інтернет, порівняно, - це жарт. Мережею займалися любителі. - Алан Кей. Я намагаюся зрозуміти історію Інтернету та …

9
Як величезні бібліотеки з відкритим кодом підтримуються, маючи код, далекий від практики "чистого коду"?
Я все ще недосвідчений писати високоякісний код, тому я читаю книги, що стосуються такої проблеми, як « Чистий код » Роберта К. Мартіна, і постійно перевіряю код відомих бібліотек, щоб покращити свою майстерність. Хоча багато бібліотек з відкритим кодом підтримуються роками, а це означає, що малоймовірно, що вони не на …

7
Яка найбільш прийнята стратегія транзакцій для мікросервісів
Одне з найважливіших проблем, яке, як я бачив, трапляється в системі з мікропослугами - це те, як працюють транзакції, коли вони охоплюють різні служби. В рамках нашої власної архітектури ми використовували розподілені транзакції для вирішення цього питання, але вони мають свої проблеми. Особливо досі тупики були болем. Іншим варіантом здається, …

17
Як навчити себе уникати написання «розумного» коду? [зачинено]
Чи знаєте ви таке почуття, коли вам просто потрібно показати цей новий трюк за допомогою Expressions або узагальнити три різні процедури? Це не повинно бути за шкалою архітектури космонавта, і насправді це може бути корисним, але я не можу не помітити, що хтось інший реалізував би той самий клас чи …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.