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

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

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

8
Який найкращий спосіб розділити роботу серед розробників
Ми з моєю командою відновлюємо сайт, який ми розробили близько десяти років тому, і ми хочемо зробити це в Agile. Тож після того, як я провів багато часу за читанням (напевно, недостатньо), у мене виникли проблеми з питанням, як розділити роботу між розробниками. Я буду більш конкретним і скажу, що …

10
Інтерфейси на абстрактному класі
У мене з колегою є різні думки щодо взаємозв'язку між базовими класами та інтерфейсами. Я вважаю, що клас не повинен реалізовувати інтерфейс, якщо цей клас не можна використовувати, коли потрібна реалізація інтерфейсу. Іншими словами, мені подобається бачити такий код: interface IFooWorker { void Work(); } abstract class BaseWorker { ... …

3
Що означає "S" в OOPS?
Я шукав повну форму " OOPS " в Google , але, на жаль, є багато неоднозначних відповідей. Деякі кажуть, що це " Системи ", а деякі кажуть, що це " Структура ", а деякі навіть згадують це як " Синопсис ". Чи може хто-небудь просвітити мене, щоб знайти повну форму …


4
Чи повинні мікросервіси розмовляти між собою?
Я розробляю програму за допомогою Micro-Services, і я не впевнений, що найкращий механізм використовувати для збору даних з декількох сервісів. Я вважаю, що є два варіанти: Інтегруйте механізм зв'язку між послугами, який дозволяє послугам спілкуватися безпосередньо. Шлюз API повинен викликати окрему службу, яка потім викликає інші служби для збору даних, …

5
Чому вивчення перекладача Lisp на Lisp так важливо?
Я бачив багато навчальних програм CS та навчальних пропозицій для нових програмістів, які закликають програміста-початківця вивчити ліст-перекладача, який спеціально написаний на lisp. Всі ці сайти говорять про речі, схожі на "його інтелектуальне одкровення", "це досвід просвітництва, який повинен мати кожен серйозний програміст", або "він показує вам апаратні та програмні відносини" …

5
Коли і навіщо використовувати вкладені класи?
Використовуючи об'єктно-орієнтоване програмування, ми маємо можливість створювати клас всередині класу (вкладений клас), але я ніколи не створював вкладений клас за 4 роки роботи з кодуванням. Для чого хороші вкладені класи? Я знаю, що клас може бути позначений як приватний, якщо він вкладений і що ми можемо отримати доступ до всіх …

7
Як поводитися з неушкодженими винятками? (Завершіть програму проти збереження в живих)
Яка найкраща практика, коли в настільному додатку трапляються незроблені винятки? Я думав про те, щоб показати повідомлення користувачеві, щоб він міг зв’язатися зі службою підтримки. Я б рекомендував користувачеві перезапустити додаток, але не змушувати його. Подібно до того, що тут обговорюється: ux.stackexchange.com - Який найкращий спосіб обробити несподівані помилки програми? …

5
Чому Python не потрібен компілятор?
Мені просто цікаво (тепер, коли я почав із C ++, який потребує компілятора), чому Python не потрібен компілятор? Я просто ввожу код, зберігаю його як exec та запускаю його. У мові C ++ я повинен створювати збірки та всі інші цікаві речі.

5
Який найефективніший спосіб зберігання числового діапазону?
Це питання стосується того, скільки бітів потрібно для зберігання діапазону. Або кажучи іншим способом, для заданої кількості біт, який максимальний діапазон, який можна зберігати і як? Уявіть, що ми хочемо зберігати піддіапазон у межах 0-255. Так, наприклад, 45-74. Ми можемо зберігати приклад вище як два неподписані байти, але мені вражає, …

3
Що відбувається з тестами методів, коли цей метод стає приватним після перепроектування в TDD?
Скажімо, я починаю розробляти рольову гру з персонажами, які нападають на інших персонажів, і подібного роду речі. Застосовуючи TDD, я роблю кілька тестових випадків, щоб перевірити логіку всередині Character.receiveAttack(Int)методу. Щось на зразок цього: @Test fun healthIsReducedWhenCharacterIsAttacked() { val c = Character(100) //arg is the health c.receiveAttack(50) //arg is the suffered …

3
Чому в Котліні немає статичного ключового слова?
Kotlin відомий перш за все як замінна Java для заміни, але позбавляється від добре відомої конструкції Java: staticключового слова. Натомість цю функціональність на рівні класу пропонують переважно супутні об’єкти. Що не так у статичних методах та полях, які супутні об’єкти дають кращу альтернативу? Я розгублений в обґрунтуванні, і не зміг …

2
Процес розробки коду для місії Voyager?
"Вояджер-1" вийшов у міжзоряний простір у серпні 2012 року і є найвіддаленішим об'єктом, створеним людиною. Запущений незабаром після свого космічного корабля-близнюка - Voyager 2, в 1977 році Voyager 1 дослідив системи Джовіана і Сатурнія, відкривши нові місяці, активні вулкани та безліч даних про зовнішню Сонячну систему. Voyager 1 і 2 …

1
Як комітет стандартів C ++ перевіряє свої дизайнерські ідеї?
Чи перевіряє комітет C ++ свої нові технічні характеристики на якомусь компіляторі прототипу, перш ніж випустити новий стандарт? Або вони випускають стандарт, який насправді є лише теоретичним, поки великі компілятори не застосовують його?

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