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

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

1
Чому в C # були реалізовані магічні методи?
У C # я почав бачити, як усі ці магічні методи спливають, не підкріплюючись інтерфейсом. Чому саме цього обрали? Дозволь пояснити. Раніше в C #, якщо об'єкт реалізував IEnumerableінтерфейс, він автоматично був би ітерабельний foreachциклом. Це має сенс для мене, оскільки це підкріплене інтерфейсом, і якби я мав власну Iteratorфункцію …
16 c# 

2
Чому спадкування, інкапсуляція та поліморфізм не є опорами ООП? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . Одного разу я зайшов у чат із переповненням стека та побачив фразу, яка стверджує, …

4
Це гарна ідея об'єднати кілька запитів HTTP, щоб зберегти пропускну здатність?
Я готую додаток на одній сторінці, який інколи використовувався б через повільний мобільний зв’язок. Деякі його частини є досить важкими з точки зору запитів API (отримання десяти різних ресурсів для нового екранного екрану). Тепер, чи гарна ідея об'єднати ці служби з послугами, що надають усі необхідні дані, але не настільки …
16 api  rest  http 

4
Чи є недолік використання AggressiveInlining на простих властивостях?
Б'юсь об заклад, що я міг би відповісти на це сам, якби знав більше про інструменти для аналізу поведінки C # / JIT, але оскільки я цього не роблю, будь ласка, попросіть мене запитати. У мене такий простий код: private SqlMetaData[] meta; [MethodImpl(MethodImplOptions.AggressiveInlining)] private SqlMetaData[] Meta { get { return …

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

8
Психічні моделі або метафори реального світу для функціонального програмування
Хтось має хорошу ментальну модель або метафору для функціонального програмування, яка посилається на щось у реальному світі? Об'єктно-орієнтоване програмування інтуїтивно має для мене сенс. Є речі, які мають властивості, і іноді вони також можуть робити речі або робити розрахунки за своїми властивостями (методами). (Наприклад: Автомобіль, Форма, Кіт). Я веду функціональне …

3
Монетизація програмного забезпечення, яке не є злим [закрито]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . У мене є безкоштовний проект з відкритим кодом з на сьогодні завантаженням близько 800 …

6
Чому ми ставимо функції приватних членів у заголовки?
Відповідь на те, чому ми розміщуємо змінні приватних членів у заголовках C ++, полягає в тому, що розмір класу повинен бути відомий у точках, де оголошуються екземпляри, щоб компілятор міг генерувати код, який належним чином переміщується навколо стека. Чому нам потрібно ставити приватних членів у заголовки? Але чи є підстави …
16 c++  history 

5
Алгоритм вирівнювання діапазонів перекриття
Я шукаю приємний спосіб вирівнювання (розбиття) списку числових діапазонів, що перекриваються потенційно. Проблема дуже схожа на проблему цього питання: Найшвидший спосіб розділити діапазони дат, що перекриваються , та багато інших. Однак діапазони - це не лише цілі числа, і я шукаю гідний алгоритм, який можна легко реалізувати в Javascript або …

2
Як зробити універсальну конструкцію більш ефективною?
"Універсальна конструкція" - це клас обгортки для послідовного об'єкта, який дає можливість його лінеаризувати (сильна умова узгодженості для одночасних об'єктів). Наприклад, ось адаптована конструкція без очікування на Java з [1], яка передбачає існування черги без очікування, яка задовольняє інтерфейс WFQ(що вимагає лише одноразового консенсусу між потоками) і передбачає Sequentialінтерфейс: public …

2
Як риси Scala уникають "алмазної помилки"?
(Примітка. Я використав "помилку" замість "проблема" в заголовку з очевидних причин ..;)). Я почитав основні риси в Scala. Вони схожі на інтерфейси Java або C #, але вони дозволяють реалізувати метод за замовчуванням. Мені було цікаво: чи не може це спричинити випадок "алмазної проблеми", саме тому багато мов у першу …

2
Створення вкладених функцій з чисто естетичних причин?
Мені завжди було цікаво, що думають інші програмісти про ідею створення чисто естетичних функцій. Скажімо , у мене є функція , яка обробляє шматок даних: Function ProcessBigData. Скажімо , мені потрібно кілька кроків процесу, дійсні тільки для цих даних: Step1, Step2, Step3. Звичайний підхід, який я бачу найбільше у вихідному …

6
З точки зору TDD, чи я погана людина, якщо тестую проти живої кінцевої точки замість макети?
Я дотримуюся TDD релігійно. Мої проекти, як правило, мають 85% або краще тестового покриття, із значущими тестовими кейсами. Я дуже багато працюю з HBase , і головний клієнтський інтерфейс - HTable - це справжній біль для глузування. На те, щоб написати свої тести на одиницю, мені потрібно в 3 або …

5
Як уникнути зайвої перевантаження методом?
У вихідному коді нашої програми є досить багато місць, де в одному класі є багато методів з однаковими іменами та різними параметрами. У цих методах завжди є всі параметри попереднього методу плюс ще один. Це результат тривалої еволюції (застарілий код) і такого мислення (я вважаю): " Існує метод M, який …

3
Плутати у визначенні поняття "абстракція" в ООП
Я намагаюся зрозуміти визначення поняття "абстракція" в ООП. Я натрапив на кілька основних визначень. Чи всі вони дійсні? Чи один з них не так? Я збентежений. (Я переписав визначення власними словами). Визначення 1: Абстракція - це концепція взяття якогось об'єкта з реального світу та перетворення його в терміни програмування. Такі …

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