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

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

8
Чому .Net книги говорять про розподіл пам'яті стека та купи?
Схоже, що кожна .net книга розповідає про типи значень проти типів посилань і робить його точкою (часто неправильно) стану, де зберігається кожен тип - купа чи стек. Зазвичай це в перших кількох главах і подається як якийсь важливий факт. Я думаю, що це навіть охоплюється сертифікаційними іспитами . Чому стек …
36 .net 

8
Чи має Linq вражаючий ефект на програмувачів .NET?
Багато з нас почали бачити це явище з jQuery приблизно рік тому, коли люди почали запитувати, як робити абсолютно божевільні речі, як отримати рядок запитів за допомогою jQuery . Різниця між бібліотекою (jQuery) та мовою (JavaScript), очевидно, втрачається у багатьох програмістів і призводить до того, що багато невідповідних, згорнутого коду …


10
Чи варто використовувати оператори перемикання або довго, якщо… інший ланцюжок?
Часто, коли я чую про заяву перемикача, його відкладають як спосіб заміни довгих, якщо ... інакше ланцюги. Але здається, що коли я використовую оператор переключення, я пишу більше коду, який я б просто писав, якби ... ще. У вас також є інші проблеми, такі як збереження всіх змінних для всіх …

11
Написання мінімального коду для проходження одиничного тесту - без обману!
Коли ви робите TDD і пишете тестовий блок, як протистояти бажанням "обдурити" під час написання першої ітерації коду "впровадження", який ви тестуєте? Наприклад: Давайте мені потрібно обчислити Фактор числа. Я починаю з одиничного тестування (використовуючи MSTest) приблизно так: [TestClass] public class CalculateFactorialTests { [TestMethod] public void CalculateFactorial_5_input_returns_120() { // Arrange …
36 unit-testing  tdd 

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

3
Чи призначені інтеграційні тести для повторення всіх одиничних тестів?
Скажімо, у мене є функція (написана в Ruby, але повинна бути зрозумілою всім): def am_I_old_enough?(name = 'filip') person = Person::API.new(name) if person.male? return person.age > 21 else return person.age > 18 end end Під час одиничного тестування я створив би чотири тести, щоб охопити всі сценарії. Кожен буде використовувати знурений …

3
Чи антипатерн використовувати peek () для зміни елемента потоку?
Припустимо, у мене є потік Речей, і я хочу "збагатити" їх середнім потоком, я можу використовувати peek()це, наприклад: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Припустимо, що мутація Речей у цьому пункті коду є правильною поведінкою - наприклад, thingMutatorметод може встановити поле "lastProcessed" на поточний час. Однак peek()у більшості контекстів означає "дивись, але не чіпай". Користуємося …

3
Будь-який сенс використання ES6 Map, коли клавішами є всі рядки?
Прості клавіші об'єкта повинні бути рядками, тоді як у Mapклавіші "може бути" будь-якого типу. Але я мало корисний для цього на практиці. Майже у всіх випадках я все одно користуюся рядками як клавішами. І, мабуть new Map(), повільніше, ніж {}. То чи є якась інша причина, чому може бути краще …

3
Повторна практика використання об'єднаної гілки?
Наразі я створював нову гілку щоразу, коли мені доводилося додавати нову функцію у свою програму. Коли моя функція закінчена і функціональна, я зливаю її з основною гілкою. Але пізніше, коли мені потрібно оновити цю функцію (на зразок вдосконалення), чи краще створити нову гілку чи мені потрібно перезавантажити попереднє з головним, …
36 git  branching 

2
Еквівалент принципів SOLID для функціонального програмування
Я вважав принципи SOLID досить корисними, коли думав про об'єктно-орієнтований дизайн. Чи існує подібний / еквівалентний набір мовно-агностичних принципів, розроблених для функціонального програмування?

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

3
Чи є причина використовувати varchar над текстовими стовпцями в базі даних?
Це varcharлише залишки від того, що textбуло раніше , або є випадки використання, коли ви хочете скористатися varchar? (Або charз цього питання ..) (Я використовую Postgres та MySQL (MyISAM) щодня, тому саме це мене найбільше цікавить, але відповіді для інших баз даних, звичайно, вітаються. ^ _-)

1
Чим відрізняється btree від rtree індексації?
Я помітив на MySQLWorkbench, що ви можете вибрати, як зберігати свої індекси, перш ніж передати інженерний дизайн. Типи сховища: BTREE RTREE ХАШ Досліджуючи це, я виявив деяку інформацію, яка в значній мірі переважала мені в голові, тому я шукаю практичну інформацію про те, у чому різниця між цими та / …

5
Чи існують фактичні приклади переписування показників успішності / відмов програмного забезпечення?
Я бачив багато постів про переписування програм, які були поганими, досвід людей про це тут, про програмістів, і статтю, яку я підготував Джоел Спольський на цю тему, але жодних вагомих доказів чи тематичних досліджень. Окрім двох прикладів, які Joel дав та деякі інші публікації тут, що ви робите з поганою …

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