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

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

3
Склад над спадщиною, але
Я намагаюся навчити себе інженерії програмного забезпечення і зустрічаюсь із суперечливою інформацією, яка мене бентежить. Я вивчав OOP, що таке абстрактні класи / інтерфейси та як ними користуватися, але потім я читаю, що слід «надавати перевагу композиції над успадкуванням». Я розумію склад - це коли один клас створює / створює …

2
Чому мови програмування почали використовувати = для призначення?
У більшості ранніх алгоритмів книг, які <-посилаються на призначення та =посилаються на порівняння. Але на сьогодні єдиними мовами, які не використовуються =для виконання завдань, є Pascal ( :=) та іграшкові мови, такі як COOL . Що призвело до того, що сучасні мови програмування перетворилися =на призначення значень замість математичного значення …

3
Чи обхід попереднього замовлення такий самий, як Перший пошук за глибиною?
Мені здається, що обхід попереднього замовлення та DFS однакові, як в обох випадках ми проходимо від кореня до лівої гілки та назад до кореня, а потім до правої гілки рекурсивно. Чи міг би виправити мене, якщо я помиляюся? Спасибі заздалегідь!

1
Шаблони регулярного вираження Java - компілювати постійні часу або члени екземпляра?
В даний час у мене є кілька однотонних об'єктів, де я співставляю регулярні вирази, і мої Patterns визначаються так: class Foobar { private final Pattern firstPattern = Pattern.compile("some regex"); private final Pattern secondPattern = Pattern.compile("some other regex"); // more Patterns, etc. private Foobar() {} public static Foobar create() { /* …

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

4
Використовуйте сервісний рівень з MVC
Якщо контролер стає занадто жирним, і інстанція моделі починає додаватися, може бути використаний сервісний шар. Якщо я просто зафіксую логіку всередині класу обслуговування, я отримаю купу Служб одним / двома методами. Це відчувається як кодовий запах. Якісь найкращі практики щодо цього? Чи може сервіс інстанціонувати моделі? Якщо служба інстанціює моделі, …
13 mvc  services 

5
Як задокументувати вже розроблений проект?
Мені хотілося б знати, які варіанти є для документування вже розробленого проекту, оскільки розробники, над якими працювали, не написали жодної сторінки документації. У проекті немає інших деталей, окрім багатьох сторінок сценаріїв з функціями, написаними та модифікованими розробниками, які працювали над цим проектом протягом останніх 2 років. Все, що у мене …

2
Що таке об’єкт активації в JavaScript?
У заданому контексті виконання об'єкт змінної є об'єктом активації цього контексту виконання. З мого дослідження в Інтернеті я можу знайти попереднє речення, перефразоване по-різному, але ніхто не в змозі сказати, що це таке. Що таке об’єкт активації?

2
Чи справді оголошення PHP шкідливими для PHP?
Розглянемо наступний код, у якому сеттер навмисно порушується через повсякденну помилку програмування, яку я зробив реально кілька разів у минулому: <?php class TestClass { private $testField; function setField($newVal) { $testField = $newVal; // deliberately broken; should be `$this->testField = $newVal` } function getField() { return $this->testField; } } $testInstance = …
13 php 

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

6
Що вважається найкращою практикою використання друку / довідки (--help)?
Як писати інструменти для CLI UNIX, як мені зробити так, щоб програма роздрукувала довідку та / або використання? Я зазвичай використовую fprintf(stderr, "help text here");, але з цим є кілька питань. По-перше, я не впевнений, чи варто використовувати stderr. Це все в порядку, або я повинен використовувати stdout? Як ви …

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

4
Про які ризики / вразливості безпеки повинен знати кожен програміст C? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 4 роки тому . Існує багато ризиків для безпеки, пов’язаних із тісним контактом з обладнанням, на відміну від …

2
Як ви обробляєте розгортання змін бази даних?
Сьогодні ми обговорювали методи розгортання бази даних, мали кілька останніх збоїв у нашому поточному процесі та побачили ситуації, коли ми хотіли б відкотити розгортання, але стара версія програми ніколи не була протестована на новій версії база даних. З одного боку, є розгортання в стилі міграції, де ви маєте інструкцію щодо …
13 database 

2
Як я можу використовувати свої навички кодування назавжди?
До цієї осені мої два маленькі веб-сайти повинні отримувати близько 1200 доларів на місяць з мінімальним / нульовим вкладом, що достатньо для того, щоб я міг жити на достатньо комфортно. Замість того, щоб братися за інше підприємницьке починання, я хотів би провести наступні кілька років, роблячи щось справді добре або …
13 c#  java  php  javascript  jquery 

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