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

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

2
Чи є ** kwargs антипатерном?
У нашій внутрішній базі коду є багато коду, який викликає наші бібліотеки всередину - у цих бібліотек часто є багато аргументів (думаю, matplotlib), і наш код часто виконує лише певне завдання і просто передає **kwargsнаступну функцію, яку називають. Наприклад: def our_method(dataframe, **kwargs): result = do_something_with_data(dataframe) external_module.draw(result, **kwargs) Хоча **kwargsзаважає нам …
16 python 

2
Чим відрізняється інкрементальний та ітеративний підхід до розробки програмного забезпечення?
Підхід інкрементний є метод розробки програмного забезпечення , де модель розроблена, реалізована і апробована поступово (трохи більше додаються кожен раз) , поки продукт не буде закінчений. Він передбачає як розробку, так і обслуговування. Виріб визначається як готовий, коли він задовольняє всім його вимогам Ітераційний Design представляє собою методологію проектування на …

6
Розуміння статичного ключового слова
Я маю певний досвід у розробці Java, Javascript та PHP. Я читаю Microsoft Visual C # 2010, крок за кроком, і я вважаю, що це дуже гарна книга про ознайомлення з мовою C #. Здається, у мене є проблеми в розумінні статичного ключового слова. З того, що я розумію поки …

3
Ліцензія на безкоштовну, але закриту програму
Я розробив просту програму, яку хочу безкоштовно випустити, але не планую випускати вихідний код. Я хочу, щоб програма була у вільному доступі, але я не хочу, щоб її продавали чи реверсували. Ліцензія MIT виглядає просто і приємно, але вона також дозволяє кожному продати її. Чи є якась там ліцензія, яка …

2
Впровадження DDD: користувачі та дозволи
Я працюю над невеликим додатком, намагаючись зрозуміти принципи доменного дизайну. У разі успіху це може бути пілотним проектом для більшого проекту. Я намагаюся слідкувати за книгою "Впровадження дизайну, керованої доменом" (автор Вон Вернон) і намагаюся реалізувати подібний, простий дискусійний форум. Я також перевірив зразки IDDD на github. У мене є …

2
Міграція БД та слоти розгортання Azure
Я планую надіслати нову веб-програму службі веб-додатків Azure (колишній веб-сайт Azure). Я хотів би скористатися слотами для розгортання, щоб мати можливість протестувати моє розгортання, перш ніж підштовхувати його до виробництва. Це все добре, доки не потрібно зміни схеми БД. Але якщо є зміна схеми, я не можу мати дві версії …

5
оператор переключення - обробка випадку за замовчуванням, коли його неможливо досягти
Якщо я використовую оператор перемикання для обробки значень із enum (який належить моєму класу), і у мене є справа за кожним можливим значенням - чи варто додати код для обробки випадку "за замовчуванням"? enum MyEnum { MyFoo, MyBar, MyBat } MyEnum myEnum = GetMyEnum(); switch (myEnum) { case MyFoo: DoFoo(); …

1
Чи слід відмітити гілку випуску або головну гілку, коли використовується gitflow?
Це питання вказує на те, що: З мого розуміння, розміщення тегу на гілці випуску перед об'єднанням (а не на головній гілці) насправді це правильно. Це можна знайти і за допомогою git description - теги з гілки розробки. Див. №374 в той час як інший пост : Сьогодні я випадково встановив …
16 gitflow 

3
Блок тестування поведінки без з'єднання з деталями реалізації
У своїй розмові TDD, куди це все пішло не так , Іен Купер підштовхує оригінальний намір Кента Бека за тестуванням одиниці в TDD (для тестування поведінки, а не методів занять конкретно) та заперечує за те, щоб уникнути прив'язки тестів до впровадження. У випадку поведінки на зразок save X to some …

2
Як зобразити набір у JSON?
JSON підтримує такі структури даних (еквіваленти Java): Scalar, Array / List і Map. A Setв JSON не підтримується поза вікном. Я подумав про кілька способів представити набір у JSON: [1] - Як список Однак у списку є своє впорядкування, тому наступні два списки ["a", "b"]і ["b", "a"]не рівні як списки, …

3
Що саме є додатком для багатьох орендарів?
Відповідно до визначення, доступного в Інтернеті, це " Мульти-оренда - це архітектура, в якій один примірник програмного забезпечення обслуговує декількох клієнтів ". Це означає, що у мене є веб-сайт ресторану чи школи, і я надаю доступ до різних ресторанів чи шкіл, щоб використовувати мою програму з власними даними, використовуючи свої …

4
Методології життєвого циклу програмного забезпечення для команд однієї людини [закрито]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

6
Як реалізовувати поплавковий хешинг з приблизною рівністю
Скажімо, у нас є наступний клас Python (проблема в Java існує точно так само, як equalsі hashCode) class Temperature: def __init__(self, degrees): self.degrees = degrees де degreesтемпература в Кельвіні як поплавок. Тепер я хотів би здійснити перевірку рівності і хешування для Temperatureтаким чином , що порівнює поплавці до epsilon різниці …

5
Передати об'єкт двічі одному методу або консолідувати за допомогою комбінованого інтерфейсу?
У мене є метод, який створює файл даних після розмови з цифровою дошкою: CreateDataFile(IFileAccess boardFileAccess, IMeasurer boardMeasurer) Тут boardFileAccessі boardMeasurerтой самий екземпляр Boardоб'єкта, який реалізує і IFileAccessі IMeasurer. IMeasurerвикористовується в цьому випадку для одного методу, який встановить один штифт на дошці активним, щоб зробити просте вимірювання. Дані цього вимірювання зберігаються …

2
Як ви ставитесь до розуміння абстракції в коді?
Дивлячись на нову базу коду, я люблю починати підхід знизу вгору. Де я осягаю один файл, а потім переходжу до наступної абстракції. Але часто буваю, що я забуваю, що робить абстракція нижнього рівня. Тож я опинюсь у цій точці, де опиняюся у майже нескінченному циклі повернення до тих файлів, які …

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