Розробка програмного забезпечення

Питання та відповіді для професіоналів, науковців та студентів, які працюють у життєвому циклі розвитку систем

2
Шаблон сховища та створення об'єктів DAL
Наскільки я дізнався, це IRepositoryповинно містити CRUD. Тоді ми успадковуємо це IRepositoryв наших інших інтерфейсів , як IProductі реалізувати IProductконкретний клас ProductRepository, з методами , як GetAllProducts(), Top5Products(). Ми могли б зробити те ж саме і з n-ярусною архітектурою. як, створення DAL Class Libraryі в ньому визначити клас Productз методами …

6
Чи планував Дайкстра проводити модуляцію коду, коли писав про розділення проблем?
По-перше, я прочитав уривок статті Едсгера У. Дійкстри 1974 року "Про роль наукової думки": Дозвольте спробувати пояснити вам, що на мій смак характерне для всього розумного мислення. Це полягає в тому, що хтось готовий поглиблено вивчити аспект предмета своєї людини ізольовано заради власної послідовності, увесь час знаючи, що людина займається …

2
Чи повинні бути включені дозволи на доступ та ролі до корисного навантаження JWT?
Чи повинна інформація про дозволи та ролі клієнта включатись у JWT? Наявність такої інформації в токені JWT буде дуже корисною, оскільки кожного разу приходить дійсний маркер, було б простіше витягнути інформацію про дозвіл користувача, і не потрібно буде викликати базу даних для того ж. Але чи включення такої інформації та …

1
Назва техніки для виведення аргументів типу параметра типу?
Налаштування: Припустимо, у нас є тип, Iteratorякий називається, який має параметр типу Element: interface Iterator<Element> {} Тоді у нас є інтерфейс, Iterableякий має один метод, який поверне an Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Проблема в Iteratorтому, що є загальним, …

2
Грунтовність винятків
Я втік до дебати між декількома друзями і I. Вони вважають за краще загальні виключення , такі , як ClientErrorExceptionі ServerErrorExceptionз деталями , як області , за винятком, в той час як я вважаю за краще робити речі більш конкретно. Наприклад, у мене може бути кілька винятків, таких як: BadRequestException …

6
Як реалізувати процес розробки зі студентами коледжу
На моїй першій роботі в якості розробника програмного забезпечення моя команда використовувала agile / scrum для управління нашим робочим процесом, і це працювало досить добре. У мене були досвідчені наставники, які поставили мене на правильний шлях - я завдячую їм великою вдячністю. Я пропрацював там кілька років, а потім перейшов …

3
За-якщо антипатерн
Я читав у цій публікації в блозі про анти-візерунок for-if, і не зовсім впевнений, що розумію, чому це анти-шаблон. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } Питання 1: Це через return new StreamReader(filename);всередині for loop? чи той факт, що вам не потрібна …

3
Чи є причина не змінювати значення параметрів, переданих за значенням?
Чи існують об'єктивні, підтримувані програмно-інженерні аргументи за або проти зміни значень параметрів побічного значення в тілі функції? Повторний плювок (здебільшого приємно) в моїй команді полягає в тому, чи слід змінювати параметри, передані за значенням, чи ні. Кілька членів команди переконані, що параметри ніколи не повинні призначатися, так що значення, яке …

5
Мікросервіси: MonolithFirst?
Я досліджував архітектури мікросервісів, намагаючись отримати огляд на високому рівні щодо всіх плюсів і мінусів, про те, хто і чому, і т.д. al). Більшість робіт Мартіна Фаулера над цією темою - це кілька років, коли мікросервіси (як домашнє ім’я в програмуванні, якщо не в загальній практиці) були ще молодими, тож …

6
що може піти не так у контексті функціонального програмування, якщо мій об’єкт є змінним?
Я бачу переваги змінних та незмінних об'єктів, таких як незмінні об'єкти, забирають багато важких для усунення проблем у багатопотоковому програмуванні завдяки спільному та записуваному стану. Навпаки, що змінюються об'єкти допомагають мати справу з ідентичністю об'єкта, а не створювати нову копію кожного разу, а також покращують продуктивність та використання пам'яті, особливо …

5
Довгий метод рефакторингу: залишаючи як розділення на методи проти використання локальних функцій
Припустимо, у мене давно такий метод: public void SomeLongMethod() { // Some task #1 ... // Some task #2 ... } У цього методу немає повторюваних частин, які слід перемістити в окремий метод або локальну функцію. Є багато людей (включаючи мене), які думають, що довгі методи - це кодовий запах. …

3
Як я б створив метод TryParse, який надає детальну інформацію у випадку помилки розбору?
Під час розбору вводу користувача, як правило, рекомендується не кидати та виловлювати винятки, а скоріше використовувати методи перевірки. У .NET BCL це буде різниця між, наприклад, int.Parse(кидає виняток щодо недійсних даних) та int.TryParse(поверненням falseнедійсних даних). Я проектую своє Foo.TryParse(string s, out Foo result) метод, і я не впевнений у поверненому …
9 c#  .net  api-design 

4
навколишній контекст проти введення конструктора
У мене багато основних класів, які потребують ISessionContext бази даних, ILogManager для журналу та IService, що використовується для спілкування з іншими службами. Я хочу використовувати введення залежності для цього класу, що використовується всіма основними класами. У мене є дві можливі реалізації. Основний клас, який приймає IAmbientContext з усіма трьома класами …

5
Виконайте шлях того, що я знаю, а потім спробуйте впровадити правильну практику кодування, або почніть з хороших методів кодування та спробуйте переробити свій шлях?
По-перше, я хочу сказати, що я звикла займатися процедурним програмуванням як своє хобі - я намагаюся вивчити OOP на пару мовах і розумію теорію , тільки не практику. У мене є проект для домашніх улюбленців, який я хотів створити, зокрема, в PHP з базою даних бази даних (не важливо, яку …

1
Як застосувати деякі поняття DDD до фактичного коду? Конкретні питання всередині
Я вивчав DDD, і в даний час намагаюся знайти спосіб застосування понять у фактичному коді. Я маю близько 10-річного досвіду роботи з N-рівнем, тому дуже ймовірно, що причина, з якою я боюсь, полягає в тому, що моя ментальна модель занадто поєднана з цим дизайном. Я створив веб-додаток Asp.NET і починаю …

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