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

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

4
Як така компанія, як Amazon, уникає вузьких місць доступу до рівня бази даних?
Якщо ви уявляєте таку компанію, як Amazon (або будь-який інший великий веб-додаток для електронної комерції), який працює в інтернет-магазині в масових масштабах і має лише обмежену кількість фізичних предметів на своїх складах, як вони можуть оптимізувати це так, щоб його не було єдине вузьке місце? Звичайно, вони повинні мати ряд …

6
Чи створює Scrum додаткові накладні витрати для проектів, де вимоги не змінюються?
Я читаю Scrum - Pocket Guide Gunther Verheyen, і він говорить: Звіт Хаосу 2011 року Standish Group знаменує перелом. Було проведено широке дослідження у порівнянні традиційних проектів з проектами, що використовували методи Agile. У звіті видно, що Agile підхід до розробки програмного забезпечення призводить до набагато вищих результатів, навіть незважаючи …

8
Чи прийнятно копіювати та вставляти довгий, але простий код, а не загортати їх у клас чи функцію?
Припустимо, у мене є сегмент коду для підключення до Інтернету та показ результатів з'єднання, як це: HttpRequest* httpRequest=new HttpRequest(); httpRequest->setUrl("(some domain .com)"); httpRequest->setRequestType(HttpRequest::Type::POST); httpRequest->setRequestData("(something like name=?&age=30&...)"); httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){ string responseString=response->getResponseDataString(); if(response->getErrorCode()!=200){ if(response->getErrorCode()==404){ Alert* alert=new Alert(); alert->setFontSize(30); alert->setFontColor(255,255,255); alert->setPosition(Screen.MIDDLE); alert->show("Connection Error","Not Found"); }else if((some other different cases)){ (some other …

1
Що таке термін для анонімної функції JavaScript, яка викликається негайно?
Я пишу керівництво по стилю JavaScript для своєї команди, щоб ми могли легше організувати та надати свої документи. Але я потрапив на невелику шишку, і саме тут стосується мого питання ... Що я повинен викликати анонімною функцією JavaScript, яка викликається негайно. Я знаю, що міг би просто назвати це "анонімною …

11
Скільки моделей дизайну та рівнів абстракції необхідні? [зачинено]
Як я можу сказати, що моє програмне забезпечення має занадто велику абстракцію та занадто багато моделей дизайну, або навпаки, як я можу знати, чи має їх більше? Розробники, з якими я працюю, по-різному програмують ці питання. Деякі з них абстрагують кожну маленьку функцію, застосовують шаблони дизайну, коли це можливо, і …

3
Практика контролю версій для Rewrites
Ми розробили продукт (прототип) P_OLD мовою X і тепер переписуємо його з нуля як P_NEW мовою Y. Оскільки P_NEW та P_OLD - той самий продукт: Чи повинен P_NEW просто бути браком із P_OLD старого або це власне сховище? Який звичайний спосіб впоратися з такими великими змінами з точки зору контролю …

4
Чи відповідає новий нульовий умовний оператор C # 6.0 проти Закону Деметра?
Закон Деметри говорить наступне: Кожен підрозділ повинен мати лише обмежені знання про інші підрозділи: лише одиниці, "тісно" пов'язані з поточним підрозділом. Кожен підрозділ повинен спілкуватися лише зі своїми друзями; не розмовляйте з незнайомцями. Поговоріть лише зі своїми найближчими друзями. C # 6.0 представив нового оператора, який називається оператором з нульовими …

7
Чи повинна програма C ++ охоплювати всі винятки та не допускати, щоб винятки перекинулися на межі main ()?
Колись мені порадили, що програма C ++ повинна врешті-решт охопити всі винятки. В той час міркування полягали в тому, що програми, які дозволяють виняткам вибухати поза межами main()дивного стану зомбі. Мені це було сказано кілька років тому, і за ретроспективою я вважаю, що спостережуване явище було пов’язане з тривалим генеруванням …
29 c++  exceptions 

3
Чому UML не використовується в більшості вільних програм (наприклад, в Linux)?
Я намагаюся зрозуміти, чому UML не використовується в більшості безкоштовних програмних програм . Наприклад, моя система Debian / Linux, мабуть, має понад десять тисяч безкоштовних програмних пакетів, і я не можу назвати навіть той, який був розроблений за допомогою явної рамки та методології UML. Наприклад, Qt , GCC , Linux …

2
Чому буквені літери C рядки лише для читання?
Яка перевага рядкових літералів, що читаються лише для читання, виправдовує (-ее / -ій): Ще один спосіб застрелити себе в ногу char *foo = "bar"; foo[0] = 'd'; /* SEGFAULT */ Неможливість елегантно ініціалізувати масив слів для читання та запису в один рядок: char *foo[] = { "bar", "baz", "running out …
29 c  memory  strings 

6
Створити новий об’єкт або скинути кожну властивість?
public class MyClass { public object Prop1 { get; set; } public object Prop2 { get; set; } public object Prop3 { get; set; } } Припустимо , у мене є об'єкт myObjectз MyClassі мені потрібно скинути свої властивості, що краще створити новий об'єкт або перепризначити кожне властивість? Припустимо, я …

2
Чому може бути складно зробити 64-бітну версію програми?
У моєму програмуванні за короткий час було тривіально збирати будь-яку з моїх C ++, Java і т. Д. Для 32 або 64-бітної машини, якщо я маю повне джерело для програми. Але багато програмного забезпечення не випущено 64-бітним. Що найприємніше, ще немає 64-бітового випуску двигуна Unity. Що ускладнює компіляцію деяких програм …

8
Використовуєте систему "сильного" типу в реальному світі, скажімо, для масштабних веб-додатків?
Я знаю, що це дуже широке, неоднозначне і, можливо, філософське питання. В тій мірі, що найважливіше ключове слово у питанні - сама система "сильних" типів, є неправильною . Отже, дозвольте спробувати пояснити, що я маю на увазі. Загальний контекст для питання Ми будуємо дуже масштабний веб-додаток в Ruby on Rails, …

6
Чи можете ви реалізувати “об’єктно-орієнтоване” програмування без ключового слова класу?
Скажімо, ми хочемо забезпечити абстракцію "рахунку" в банку. Ось один підхід із використанням functionоб’єкта в Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: …

6
У чому полягає компроміс для виводу типу?
Здається, що всі нові мови програмування або, принаймні, ті, що стали популярними, використовують умовивід. Навіть Javascript отримав типи та умови виводу, хоча різні реалізації (Acscript, typecript тощо). Мені це здається чудово, але мені цікаво, чи є компроміси чи чому, скажімо, Java або старі добрі мови не мають висновку про тип …

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