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

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

8
UX-дизайнери працюють на один спринт вперед
У наших UX-дизайнерів зазвичай є історія в Sprint X, яку розробники впроваджуватимуть у Sprint X + 1 (UX-дизайнери та розробники / тестери в одній команді). Я думаю, що це має сенс, оскільки якщо у вас немає макетів екрана та чітких специфікацій, ви не можете реально оцінити роботу під час планування …

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

4
Що робити, коли ваша компанія не шифрує паролі
Фон Мене домовили про допомогу компанії підтримувати їх сервер. Я працюю над деякими незначними проектами PHP, але також розглядаю проблеми продуктивності та останнім часом сканую журнали для хакерів. Ці хлопці вже деякий час керують своїм сервером і мають те, що я б назвав застарілим додатком на останніх ногах. Він використовує …
13 php  apache  security  mysql 

6
У Scrum, хто підтверджує "Готово"?
Я менеджер з питань контролю якості та тесту у своїй організації і до сьогоднішнього дня перевіряв якість програмного забезпечення (написані та виконані тести та виправлені помилки). Хто перевірить це в Scrum? Як я знаю, що команда написала та виконала всі правильні тести? З іншого боку, я боюся, що якщо я …
13 scrum 

2
Чому відокремлюємо клас CommandHandler з Handle (), а не метод обробки в Command себе
У мене є частина CQRS-схеми, реалізованої за допомогою архітектури S # arp : public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } Цікаво, …

5
Як імітувати API REST?
Я працюю над новим проектом, який запитуватиме дані від стороннього API REST. Це подання спортивних даних у режимі реального часу, тому канал працює лише тоді, коли гра фактично відбувається. Хоча третя сторона надає хорошу документацію (XSD тощо), вони не мають змоги імітувати гру, що відбувається, і тому для тестування коду, …
13 api  rest 

2
Чи стираються типи в Haskell?
Хаскелл має поняття "загальних функцій", яке має певну схожість із загальним лісом - не маючи ні досвіду роботи з Хаскеллом, ні загальним лісом, я можу бути тут дуже приблизним. Це означає, що можна визначити загальний to_stringінструмент для визначення рядкового подання для всіх типів. Звичайно, об'єкт повинен бути визначений в особливих …

4
Який спосіб припинити цикл читання є кращим підходом?
Коли ви маєте перебрати читача, коли кількість предметів для читання невідома, і єдиний спосіб зробити це - тримати читання, поки не досягнете кінця. Це часто місце, де вам потрібна нескінченна петля. Завжди trueвказується на те, що десь усередині блоку повинно бути breakабо returnтвердження . int offset = 0; while(true) { …

6
Програмування на основі контракту та тест на одиницю
Я дещо захисний програміст і великий прихильник контрактів Microsofts Code. Тепер я не завжди можу використовувати C #, і в більшості мов єдиним інструментом, який я маю, є твердження. Тому я зазвичай закінчую такий код: class { function() { checkInvariants(); assert(/* requirement */); try { /* implementation */ } catch(...) …

2
Реалізуйте тип класу Haskell з інтерфейсом C #
Я намагаюся порівняти типи класів Haskell та інтерфейси C #. Припустимо, є Functor. Haskell: class Functor f where fmap :: (a -> b) -> f a -> f b Як реалізувати цей клас класу як інтерфейс у C #? Що я спробував: interface Functor<A, B> { F<B> fmap(Func<A, B> f, …
13 c#  haskell 

1
Чому додавання до списку в Scala має складну часові (O) n?
Я щойно прочитав, що час виконання операції додавання для List(: +) лінійно зростає з розміром List. Звернення до Listздається схоже на досить поширену операцію. Чому ідіоматичний спосіб зробити це - попередньо допомігши компоненти, а потім змінити список? Це також не може бути помилкою дизайну, оскільки реалізація може бути змінена в …

6
Як практикувати об’єктно-орієнтоване програмування? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Закрито 6 років тому . Заблокований . Це запитання та його відповіді заблоковано, оскільки це питання поза темою, але має історичне значення. Наразі не приймає нових відповідей чи взаємодій. Я завжди програмував на процедурних мовах і в даний …

2
Оскільки збирання сміття не є детермінованим, чому його не використовують для безпечного генерування випадкових чисел?
Я розумію, що / dev / random є хорошим джерелом ентропії, і це те, що зазвичай використовується-- Це так само, як я читаю на GC, принаймні на Java, здається прийнятим, що демон демону сміття виконує недетерміновано . Якщо це правда, чому б ми не використали терміни збору сміття як джерело …

6
Які функціональні особливості варті невеликої плутанини OOP за користь, яку вони приносять?
Після вивчення функціонального програмування в Haskell і F #, парадигма OOP здається задньою назад класами, інтерфейсами, об'єктами. Які аспекти ПП я можу залучити до роботи, які можуть зрозуміти мої колеги? Чи варто будь-які стилі FP поговорити з моїм начальником про перепідготовку моєї команди, щоб ми могли їх використовувати? Можливі аспекти …

4
Чи лінк ефективніший, ніж на поверхні?
Якщо я напишу щось подібне: var things = mythings .Where(x => x.IsSomeValue) .Where(y => y.IsSomeOtherValue) Це те саме, що: var results1 = new List<Thing>(); foreach(var t in mythings) if(t.IsSomeValue) results1.Add(t); var results2 = new List<Thing>(); foreach(var t in results1) if(t.IsSomeOtherValue) results2.Add(t); Або є якась магія під обкладинками, яка працює приблизно …
13 c#  linq 

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