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

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

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

3
Чому мова повинна віддавати перевагу відступу над явними маркерами для блоків?
Я вивчаю Haskell, і шукав інструмент автоматичного відступу. Я не дуже придивився, і дізнався, що в Haskell (як і в Python) відступ означає блок. Як результат, я здогадуюсь, що неможливо створити інструмент автоматичного форматування, такий сильний, як в інших мовах сімейства C, які використовують явні маркери, такі як {} (фігурні …

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

1
Яка практична проблема є наслідком відсутності гігієнічних макросів у Clojure?
Я чув, що макроси Clojure простіше писати, але не такі надійні, як гігієнічні макроси Ракетки. Моє запитання має 2 частини: Чим gensymвідрізняються гігієнічні макроси? Що забезпечують макроси ракетки, які Clojure не роблять? (будь то безпека, компостування чи що-небудь)

1
Енум з великою кількістю булевих властивостей
В даний час я працюю над веб-сервером, де нам часто потрібно визначати певну логіку сервера на основі сторінки, яку потрібно повернути користувачеві. Кожній сторінці надається 4-літерний код сторінки, і ці коди сторінок в даний час перераховані в класі як статичні рядки: public class PageCodes { public static final String FOFP …
11 java  design  enum 

1
Алгоритм генерування країв і вершин назовні від початку з максимальною кратністю 3
Я створюю 2-грі для веб-сайту, де Всесвіт може зростати надзвичайно великим (в основному нескінченно великим). Спочатку Всесвіт складається з 6 зірок, що знаходяться на рівній відстані від походження (0, 0). Моє завдання - вміти генерувати більше зірок, які матимуть «доріжки» (краї), які з'єднуються між собою. Як я можу створити алгоритм, …

1
Заміняти застарілі вимоги до BDD
Питання: Який найкращий спосіб перенести велику компанію в «Огірок», принаймні 15 років застарілих програмних вимог, що зберігаються в базі даних з вимогами? В даний час розглядає: 1) Мігрувати все Нижня сторона: у нас немає необмеженого часу / бюджету, ми повинні рухатися вперед, щоб вижити, ми не можемо зупинити все і …
11 bdd  cucumber 

3
У DDD, чи повинні сховища відкривати об'єкти чи домен?
Як я розумію, в DDD доречно використовувати шаблон сховища з сукупним коренем. Моє запитання полягає в тому, чи слід повертати дані як об'єкт або доменні об'єкти / DTO? Можливо, якийсь код пояснить моє питання далі: Суб'єкт public class Customer { public Guid Id { get; set; } public string FirstName …

3
Як ви використовуєте набір качок у javascript, не перевіряючи завжди властивості та методи?
Я знаю, що JavaScript використовує набір качок, і спочатку я думав, що це полегшить поліморфізм порівняно з сильно набраними мовами, такими як C #. Але тепер мої функції, які беруть аргументи, вписані такими, як: if(myObj.hasSomeProperty()) або if(myObj.hasSomeMethod()) або if(isNumber(myParam)) тощо. Це справді некрасиво для мене. Я надходжу з фону C …

5
Найкраща стратегія звітування про прогрес в інтерфейсі - як має відбуватися зворотний виклик?
Іноді користувач запускає розширену технічну операцію, яка потребує певного часу. У цих випадках зазвичай приємно відображати якусь панель прогресу, а також інформацію про те, яке завдання виконується зараз. Щоб уникнути тісного з’єднання інтерфейсу користувача та логічних шарів, зазвичай, краще, щоб спілкування відбувалося через якийсь проксі. Тобто, бек-енд не повинен маніпулювати …

7
Навіщо нам потрібні і пріоритет, і серйозність?
Я розумію, що вони визначають, але чи справді корисно віднести їх до знайдених проблем? Я маю на увазі, це потрібно або швидко виправити, або ні. Я знаю, як їх встановити, класифікувати тощо. Я знаю, що IEEE / ISO вимагають цього робити. Я просто не бачу, чому.

4
Ruby: якщо змінний vs if varia.nil?
Я новачок у Рубі, і я здивувався, коли дізнався, що всі об’єкти є істинними, крім нульових і хибних. Навіть 0 правда. Приємна річ у цій властивості мови полягає в тому, що ви можете писати: if !variable # do stuff when variable is nil end Мої колеги, які є більш досвідченими …

3
Чи повинні пов'язані списки завжди мати вказівник хвоста?
Моє розуміння ... Переваги: В кінці вставляється O (1) замість O (N). Якщо список є подвійно пов'язаним списком, то видалення з кінця також є O (1) замість O (N). Недолік: Займає тривіальну кількість додаткової пам’яті: 4-8 байт . Реалізатор повинен слідкувати за хвостом. Дивлячись на ці переваги та недоліки, я …

2
Принцип сухості в передовій практиці?
Я намагаюся слідувати принципу DRY в моєму програмуванні так сильно, як можу. Нещодавно я вивчав шаблони дизайну в OOP, і в кінцевому підсумку повторював себе досить багато. Я створив шаблон репозиторію разом із візерунками Factory і Gateway, щоб вирішити свою стійкість. Я використовую базу даних у своїй програмі, але це …

2
Класи Python лише з одним екземпляром: Коли створити (єдиний) екземпляр класу і коли замість цього працювати з класом?
Дано клас Python, який буде інстанціюватися лише один раз, тобто буде лише один об'єкт класу. Мені було цікаво, в яких випадках має сенс створити один екземпляр класу, а не працювати безпосередньо з класом. Існує подібне питання , але воно має іншу спрямованість: йдеться про групування глобальних змінних та функцій у …

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