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

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

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

7
Наскільки важливо зробити рівень обслуговування?
Я почав створювати додаток у 3 шари (DAL, BL, UI) [він в основному обробляє CRM, деякі звіти про продажі та інвентар]. Колега сказав мені, що я повинен перейти до схеми службового шару, що розробники прийшли до схеми обслуговування зі свого досвіду, і це кращий підхід до проектування більшості програм. Він …

7
Якщо функції повинні зробити нульові перевірки перед тим, як виконати задумане поведінку, це погана конструкція?
Тому я не знаю, чи це добре, чи погано дизайн коду, тому я подумав, що краще запитати. Я часто створюю методи, що займаються обробкою даних за участю класів, і я часто роблю багато перевірок у методах, щоб переконатися, що я не отримую нульових посилань або інших помилок перед рукою. Для …
67 c#  design  validation 

16
Як уникнути логічних помилок у коді, коли TDD не допомогла?
Нещодавно я писав невеликий фрагмент коду, який по-людськи вказував би, наскільки давна подія. Наприклад, це може означати, що подія сталася "Три тижні тому" або "Місяць тому" або "Вчора". Вимоги були відносно чіткими, і це був ідеальний випадок для тестових розробок. Я писав тести по черзі, впроваджуючи код, щоб пройти кожен …

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

10
Що таке правильне використання каналу?
Даудаустинг означає передачу з базового класу (або інтерфейсу) на підклас або клас класу. Прикладом пониження може бути, якщо ви переходите System.Objectна інший тип. Downcasting непопулярний, можливо, кодовий запах. Об'єктно-орієнтована доктрина - це віддати перевагу, наприклад, визначенню та виклику віртуальних чи абстрактних методів замість того, щоб придушувати. Які, якщо такі є, …

10
Чому для мов потрібні дужки навколо виразів, коли вони використовуються з "якщо" та "поки"?
Мови , як C, Java і C ++ все вимагають дужки навколо усього виразу при використанні в if, whileабо switch. if (true) { // Do something } на відміну від if true { // Do something } Мені це здається дивним, оскільки дужки є зайвими. У цьому прикладі trueє окремим …

9
У чому сенс правила 90/10 оптимізації програми?
Згідно з Вікіпедією, правило 90/10 для оптимізації програми зазначає, що "90% часу на виконання програми витрачається на виконання 10% коду" (див. Другий параграф тут ). Я справді цього не розумію. Що саме це означає? Як 90% часу на виконання може бути витрачено лише на виконання 10% коду? А як тоді …

8
Якщо мені потрібно використовувати частину пам'яті протягом усього часу моєї програми, чи дійсно потрібно звільнити її безпосередньо перед завершенням програми?
У багатьох книгах та навчальних посібниках я чув, як підкреслювалась практика управління пам’яттю, і я відчував, що деякі таємничі та страшні речі трапляться, якщо я не звільнить пам’ять після того, як закінчую її використання. Я не можу говорити про інші системи (хоча мені доцільно припустити, що вони застосовують подібну практику), …

7
Як ви переходите програму з розробки на випуск?
У якийсь момент розробляється програма. Особливості додаються або видаляються або змінюються постійно. Кожна версія - це не що інше, як прототип. Тому я не витрачаю багато часу на написання надчистого коду на той момент, тому що ніколи не знаю, як довго щось триває. Звичайно, я намагаюся дотримати якість коду до …

7
Чому так багато проектів віддають перевагу "git rebase" перед "git merge"?
Однією з переваг використання DVCS є робочий процес редагування-фіксація-об'єднання (над редагуванням-злиттям-здійсненням, який часто виконується CVCS). Дозволяючи кожній унікальній зміні фіксуватись у сховищі незалежно від об'єднань, гарантується, що DAG точно відображає справжній родовід проекту. Чому так багато веб-сайтів говорять про те, щоб прагнути "уникати об'єднань"? Чи не злиття попереднього введення чи …

10
Чи варто брати на себе зобов’язання виключно для вирішення некритичних помилок?
Якщо я натрапив на некритичну помилку в коді (скажімо, помилковий апостроф у заяві про друк (помилку)), чи варто взяти на себе зобов’язання вирішити цю помилку, чи її просто слід залишити в спокої? Зокрема, мені цікаво зважувати підсумки журналу фіксації проти значення вирішення цих некритичних помилок. Я схиляюся до їх вирішення. …

9
У який момент можна сказати, що я "вивчив" мову?
За свої кілька років програмування я грав з усім, від Ruby до C ++. Я зробив усе, від просто вивчення базового синтаксису (Ruby) до виконання декількох великих (для мене) проектів, які розтягували мої здібності мовою. З огляду на цю різноманітність (і той факт, що справді вивчення мови ніколи не припиняється), …

3
Чому кадри застаріли в HTML5, а не iFrames?
Чому кадри застаріли в HTML5, а не iFrames? Адже різниці між ними майже немає. У багатьох випадках використання будь-якого з них дасть однаковий результат (вибачте мене, якщо я помиляюся)?
67 html5 

16
Скільки свободи повинен мати програміст у виборі мови та рамки?
Я почав працювати в компанії, орієнтованій насамперед на C #. У нас є кілька людей, яким подобається Java і JRuby, але більшість програмістів тут люблять C #. Мене взяли на роботу, тому що я маю великий досвід створення веб-додатків і тому, що я схиляюся до новіших технологій, таких як JRuby …

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