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

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

3
Функціональне програмування та текстові пригоди
Це здебільшого теоретичне питання про ПП, але я буду брати текстові пригоди (на зразок старого шкільного Зорка), щоб проілюструвати свою думку. Мені хотілося б дізнатися ваші думки щодо того, як би ви змогли змоделювати модерацію з FP. Текстові пригоди справді, схоже, закликають OOP. Наприклад, всі "номери" - це екземпляри Roomкласу, …

9
Чому не може бути явних конверсій?
Як я розумію, неявна конверсія може спричинити помилки. Але це не має сенсу - чи не повинні нормальні конверсії також викликати помилки? Чому б не мати len(100) робота мовою, що її інтерпретують (або компілюють) як len(str(100)) тим більше, що це єдиний спосіб (який я знаю) для нього. Мова знає, що …

3
Який найкращий спосіб структурувати та називати файли, що містять загальні класи з тим самим іменем?
У своєму поточному проекті я зіткнувся з вимогою створити загальні класи з однаковою назвою, але різною кількістю загальних параметрів. Наприклад: MyClass<T1> MyClass<T1, T2> MyClass<T1, T2, T3> З огляду на те, що я хочу, щоб усе це було в одному просторі імен, я збентежений, як структурувати та називати свої класи та …
14 c#  .net 

3
Чи слід додати конструктори до конструкцій?
Ми часто використовуємо структури c ++ для визначення структури даних на відміну від класу, який може бути повним модулем з методами-членами. Тепер у глибині душі ми знаємо, що вони обоє однакові (слабко кажучи). Той факт, що ми часто використовуємо / трактуємо структури як сукупності лише для даних, створює це заклик …

3
Групування декількох сховищ Git, які є частиною одного загального проекту
Скажімо, у мене є проект, який містить декілька компонентів: компонент сервера, компонент веб-додатків, компонент iOS, компонент Android тощо. Ці компоненти є усі окремими кодовими базами, але також нещільно пов'язані (наприклад, зміна сервера код може вимагати змін і для всіх інших компонентів) Який найбільш ефективний спосіб організувати цей проект у Git? …
14 git 

2
Правильна термінологія в теорії типів: типи, конструктори типів, види / сорти та значення
У відповідь на попереднє запитання розпочалася невелика дискусія щодо правильної термінології для певних конструкцій. Оскільки я не знайшов питання (окрім того чи іншого , що не зовсім правильне), щоб вирішити це чітко, я роблю це нове. Сумнівними термінами та їх взаємозв'язками є: тип, конструктор типу, параметр типу, види чи види …

5
Обробка винятків у програмі, яку потрібно запустити 24/7
Я читав, що ми повинні виловлювати лише винятки, які можна обробити, що робить вилов базового класу винятків (C # в даному випадку) поганою ідеєю (крім інших причин). Зараз я є частиною проекту, в якому я поки що ще нічого не бачив, окрім базового винятку. Я згадував, що вважати це поганою …

6
Який найкращий спосіб розширити масштаб і розділити спритну команду для створення веб-програми?
Нещодавно я приєднався до компанії, де я працюю майстром scrum над гнучким проектом розвитку, створюючи веб-додаток. Команда ось-ось стане максимальним розміром для спритної команди (очікуючи 9 наступного тижня). Ми говорили про те, щоб потенційно розділити команду на дві команди, не стільки для скорочення складання (які не є надмірними на даний …

2
Причина повернення заяви в рекурсивному виклику функції
Я просто мав сумніви у своєму розумі. Наступна підпрограма (для пошуку елемента, наприклад, у списку) має в кінці висновок: list *search_list(list *l, item_type x) { if (l == NULL) return(NULL); if (l->item == x) return(l); else return( search_list(l->next, x) ); } Я не можу отримати значення оператора return в кінці …

2
Що означає дядько Боб під «іменниковою фразою іменами»?
Я читаю Чистий код дядька Боба. Оскільки я не є носієм англійської мови, я не міг зрозуміти таке твердження: Класи і об'єкти повинні мати іменник або словосполучення імена , як Customer, WikiPage, Accountі AddressParser. Уникайте таких слів , як Manager, Processor, Dataабо Infoв ім'я класу. Ім'я класу не повинно бути …

2
Об'єктно-орієнтоване та векторне програмування
Я розривається між об'єктно-орієнтованим та векторним дизайном. Я люблю здібності, структуру та безпеку, які об'єкти надають всій архітектурі. Але в той же час для мене дуже важлива швидкість, і наявність простих змінних плаваючих елементів в масиві дійсно допомагає в векторних мовах / бібліотеках, таких як Matlab або numpy в Python. …

2
Спільний кеш - найкраща практика інвалідизації
Мені хотілося б знати, що було б кращим підходом до визнання об'єктів кеша недійсним / оновленим. Передумови Маючи віддалений сервер з запам’ятовуванням (служить кешем для декількох додатків) Усі сервери розміщуються в лазурі (регіони афінності, однакові центри обробки даних) Розмір об'єкта кешу коливається від 200 байт до 50 кілобайт Підхід 1 …

6
Анотувати вихідний код із діаграмами як коментарі
Я пишу багато (в першу чергу c ++ та javascript) коду, який стосується обчислювальної геометрії та графіки та подібних тем, тому я виявив, що візуальні діаграми були невід'ємною частиною процесу вирішення задач. Я зараз вирішив, що "о, чи не було б просто фантастично, якби я міг якось прикріпити мальовану діаграму …

3
У MVC DAO слід викликати від Controller або Model
Я бачив різні аргументи проти того, щоб DAO викликався безпосередньо з класу Controller, а також DAO з класу Model.Infact Я особисто вважаю, що якщо ми слідуємо за схемою MVC, контролер повинен поєднуватися не з DAO, а з класом Model слід викликати DAO зсередини, а контролер повинен викликати клас моделі. Чому …

11
Принцип KISS застосовується для розробки мови програмування?
KISS ("тримайте це просто, дурно" або "тримайте його просто дурним", див. Наприклад, тут ) є важливим принципом у розробці програмного забезпечення, навіть незважаючи на те, що воно, мабуть, виникла в техніці. Посилаючись на статтю у Вікіпедії: Цей принцип найкраще пояснюється історією того, як Джонсон вручив команді інженерів-конструкторів кілька інструментів, з …

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