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

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

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

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

6
Метод проти функції та процедури
Просте запитання, але я часто чую ці три терміни, визначені такою жорстокістю, але які, як відомо, означають різні речі протягом багатьох років. Які "правильні" визначення "процедури", "методи", "функції", "підпрограми" тощо?

10
Чи справді дизайнерські зразки справді важливі?
Я читав «Кодери на роботі» і стикався з тим, що деякі з опитаних у книзі професіоналів не так захоплені дизайнерськими моделями. Я думаю, що для цього є дві основні причини: Шаблони дизайну змушують нас мислити в їх термінах. Іншими словами, винайти щось нове (можливо, краще) майже неможливо. Шаблони дизайну не …

13
Яку "конвенцію про іменування версій" ви використовуєте? [зачинено]
Чи підходять різні конвенції про іменування версій для різних проектів? Що ви використовуєте і для чого? Особисто я віддаю перевагу номеру складання у шістнадцятковій (наприклад, 11BCF), це слід збільшувати дуже регулярно. А потім для клієнтів простий тризначний номер версії, тобто 1.1.3. 1.2.3 (11BCF) <- Build number, should correspond with a …

15
Коли оптимізувати для пам'яті проти швидкості роботи метод?
Нещодавно я брав інтерв'ю в Amazon. Під час сеансу кодування інтерв'юер запитав, чому я оголосив змінну в методі. Я пояснив свій процес, і він кинув мені виклик вирішити ту саму проблему з меншою кількістю змінних. Наприклад (це було не з інтерв'ю), я почав із методу А, потім вдосконалив його до …

9
Скільки логіки бізнесу має застосовувати база даних?
Я працював у деяких проектах, де більша частина логіки бізнесу була реалізована на базі даних (переважно через збережені процедури). З іншого боку, я чув від деяких колег-програмістів, що це погана практика ("Бази даних є для зберігання даних. Додатки є для того, щоб робити все інше"). Який із цих підходів загалом …

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

13
Як ви виправдовуєте написання ще коду, дотримуючись чистих практик кодування?
Примітка модератора На це питання вже було розміщено сімнадцять відповідей . Перш ніж опублікувати нову відповідь, будь ласка, прочитайте наявні відповіді та переконайтесь, що ваша точка зору вже недостатньо висвітлена. Я дотримувався деяких практик, рекомендованих у книзі "Чистий код" Роберта Мартіна, особливо тих, які стосуються типу програмного забезпечення, з яким …

11
З чого повинна почати моя команда, щоб стати "сучасною"? [зачинено]
Я порівняно новий розробник, свіжий з коледжу. Під час навчання в коледжі та під час подальшого пошуку роботи я зрозумів, що існує багато "сучасних" методологій розробки програмного забезпечення, яких не вистачало моїй освіті: тестування блоків, ведення журналів, нормалізація бази даних, спритна розробка (проти загальних спритних концепцій), стиль кодування посібники, рефакторинг, …
106 agile  teamwork 

10
Чому Python використовується для високоефективних / наукових обчислень (але Ruby це не так)?
Є цитата з розмови про PyCon 2011, яка йде: Принаймні, в нашому магазині (Національна лабораторія Аргонна) у нас є три прийняті мови для наукових обчислень. У такому порядку вони є C / C ++, Fortran у всіх його діалектах та Python. Ви помітите абсолютний і повний брак Ruby, Perl, Java. …

15
Чому структури інтерв'ю так важливі в інтерв'ю? [зачинено]
Мушу зізнатися, що я не був таким сильним у структурах даних, коли закінчив коледж. Під час навчання в університеті під час мого закінчення навчання я спостерігав, що більшість великих технологічних компаній, таких як Amazon, Microsoft тощо, зосереджувались головним чином на структурах даних. Схоже, структури даних - це єдине, чого вони …

16
Чи слід зазначити помилки, пов'язані з написанням / граматикою в чиємусь коді? [зачинено]
Переглядаючи код співробітника, я зіткнувся з деякими орфографічними помилками у назвах функцій, а також граматичними помилками на зразок 'didUserHasPermission ()' замість 'doesUserHavePermission ()' у функціях та назвах змінних. Чи варто вказати на нього або я занадто педантичний, помічаючи їх?

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

6
Чому саме XML називають саме «мовою»?
Мені було цікаво, чому XML має L у своєму імені. Сам по собі XML нічого не "робить". Це просто формат зберігання даних, а не мова! Мови "роблять" речі. Те, як ви отримуєте XML, щоб "робити" речі, щоб перетворити їх на мову належним чином, - додавати xmlnsатрибути до його кореневого елемента. …

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