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

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

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

11
Отримайте 100 найвищих цифр із нескінченного списку
Одному моєму другові було задано це питання інтерв'ю - "Існує постійний потік чисел, що надходять з якогось нескінченного списку чисел, з яких вам потрібно підтримувати структуру даних, щоб повернути топ-100 найвищих чисел у будь-який момент часу. Припустимо, що всі числа є лише цілими числами." Це просто, вам потрібно вести відсортований …
53 numbers  big-o  puzzles 

5
Куди ви йдете, щоб прочитати хороші приклади вихідного коду? [зачинено]
Я чув, як кілька людей кажуть, що один з найкращих способів поліпшити свою здатність до кодування - це прочитати код інших і зрозуміти його. На моє запитання, як щодо нового програміста, куди мені дістатись, щоб знайти хороші приклади вихідного коду, які не надто далеко над головою?

10
Як провести тести?
Ми перевіряємо наш код, щоб зробити його більш правильним (насправді, менше ймовірність його неправильності ). Однак тести також є кодовими - вони також можуть містити помилки. І якщо ваші тести є помилковими, вони навряд чи покращать ваш код. Я можу придумати три можливі типи помилок у тестах: Логічні помилки, коли …

14
Чи справді TDD працює для складних проектів?
Я задаю це питання стосовно проблем, які виникли під час проектів TDD. Я помітив наступні проблеми при створенні одиничних тестів. Генерування та підтримка макетних даних Підтримувати великі макетні дані важко і нереально. Ще складніше, коли структура бази даних зазнає змін. Тестування GUI Навіть з MVVM та можливістю тестувати графічний інтерфейс, …
53 tdd 

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

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

1
Конвенції про іменування протоколу Swift [закрито]
Виходячи з переважно c # фону, я звик використовувати термін "інтерфейс" для опису об'єкта без реалізації, який визначає поведінку. У c # умовою є додавання назв інтерфейсу з "Я", як у IEnumerable, тощо. Звичайно, концепція має різні назви різними мовами. У Свіфта те саме поняття називається "протокол". Коли я розробляю …

2
Що таке "функція заздрості", і чому це вважається запахом коду?
Це запитання в ТА говорить про те, щоб виправити те, що, на думку ОП, є кодом заздрості . Ще один приклад, коли я бачив, як цитується ця витончена фраза, - це нещодавно відповідь тут у програмістах. Хоча я крапля в коментарі до цієї відповіді з проханням про інформації , яку …

5
Чи потрібно передавати файли для відкриття або відкривати файли?
Припустимо, у мене є функція, яка виконує дії з текстовим файлом - наприклад, читає з нього та видаляє слово "a". Я можу або передати йому ім'я файлу та обробити функцію відкриття / закриття, або я міг би передати йому відкритий файл і очікувати, що той, хто його зателефонує, вирішить його …

6
Чи корисно використовувати вирази лямбда, коли це можливо в java?
Нещодавно я освоїв вираз Lambda, який був представлений в java 8. Я вважаю, що коли я використовую функціональний інтерфейс, я прагну завжди використовувати вираз Lambda замість створення класу, який реалізує функціональний інтерфейс. Це вважається хорошою практикою? Або є їх ситуації, коли використання Lambda для функціонального інтерфейсу не підходить?
52 java  lambda 

4
Яка точна винахідливість труби Unix
Я чув історію про те, як Дуглас Маклрой придумав цю концепцію і як Кен Томпсон реалізував її за одну ніч. Наскільки я розумію, pipe - це системний виклик, який розділяє частину пам'яті між двома процесами, де пише один процес, а інший читає. Як хтось, хто не знайомий із внутрішніми або …

9
Викиньте виняток або нехай код не вдасться
Мені цікаво, чи є плюси і мінуси проти цього стилю: private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } Цей метод для кожного nameслід застосовувати лише один раз. …
52 exceptions 

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

6
Як я можу реалізувати функцію «самознищення» у безкоштовній пробній версії свого програмного забезпечення?
Існує постійний аргумент безкоштовної пробної версії проти моделі freemium (тобто безкоштовної версії їх програмного забезпечення з обмеженими та / або позбавленими функцій), що дозволяє потенційним клієнтам та користувачам тестувати запуск свого продукту. Під час мого дослідження я можу зробити висновок, що безкоштовна пробна версія - це спосіб продовжувати як на …

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