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

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

14
Як логічно визначити "чи"
Нещодавно я зіткнувся з проблемою, яка вимагала від мене програмного визначення логічного оператора "АБО", але без використання самого оператора. Що я придумав, це: OR(arg1, arg2) if arg1 = True and arg2 = True return True else if arg1 = True and arg2 = False return True else if arg1 = …

15
Як ви ефективно конкуруєте з проектом з відкритим кодом?
Компанію з надійним проектом з відкритим кодом, що конкурує проти традиційного продукту із закритим кодом, начебто неможливо перемогти. Я читав цю статтю, де автор викладає такий сценарій: Припустимо, можна розділити ринок програмного забезпечення (наприклад, управління мережею) між двома продуктами. Один зробив усе можливе і коштував 1 мільйон доларів, а інший …

5
Чи достатньо, щоб методи розрізняли лише за назвою аргументу (а не за типом)?
Чи достатньо, щоб методи розрізняли лише за назвою аргументу (а не типом) чи краще називати його більш чітко? Так , наприклад T Find<T>(int id)проти T FindById<T>(int id). Чи є якась вагома причина назвати це більш чітко (тобто додавати ById) проти збереження лише імені аргументу? Я можу подумати, коли підписи методів …

3
Чи порушує "склад над успадкуванням" "сухий принцип"?
Наприклад, врахуйте, що у мене є клас для інших класів, який слід продовжити: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } і деякі підкласи: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } Насправді, підклас не має …

7
Чи потрібно тримати тести на прості (автономні) функції?
Врахуйте це: public function polynominal($a, $b, $c, $d) { return $a * pow($x, 3) + $b * pow($x, 2) + $c * $x + $d; } Припустимо, ви пишете різні тести на вищевказану функцію і доводить собі та оточуючим, що "це працює". Чому б тоді не зняти ці випробування і …

2
Чому методи, що приймають необмежену кількість параметрів, часто визначають перевантаження з меншою кількістю параметрів?
Наприклад, System.IO.Path.Combineметод у .NET має такі перевантаження: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) У чому сенс останніх трьох? Перший охоплював би їх усіх, так як якщо ви уважно придивитесь, він використовує paramsключове слово. Аргумент зворотної сумісності охоплював би лише Combine(String, String)варіант, оскільки він був єдиною …

2
Що таке 4 і 5 покоління мови програмування? Чи є їх більше? [зачинено]
Як це часто класифікують на рівні школи / коледжу, популярними мовами програмування (C #, Java, C ++) є всі мови третього покоління (з більш високим рівнем абстрагування від фізичних частин машини). Крім того, мови складання класифікуються як мови 2-го, а машинні - як мови першого покоління. Спочатку я думав, що …

7
Які функціональні еквіваленти обов'язкових заяв про перерви та інших перевірок циклу?
Скажімо, я нижченаведена логіка. Як це записати у функціональне програмування? public int doSomeCalc(int[] array) { int answer = 0; if(array!=null) { for(int e: array) { answer += e; if(answer == 10) break; if(answer == 150) answer += 100; } } return answer; } Приклади в більшості блогів, статей ... Я …

8
Чи повинні бути визначені можливості об'єкта виключно за допомогою інтерфейсів, які він реалізує?
isОператор C # і оператор Java instanceofдозволяють вам розгалужувати інтерфейс (або, ще більш чітко, його базовий клас), реалізований екземпляром об'єкта. Чи доцільно використовувати цю функцію для розгалуження високого рівня на основі можливостей, які надає інтерфейс? Або базовий клас повинен надавати булеві змінні для надання інтерфейсу для опису можливостей, які має …


7
Як приймати значні технічні рішення, дається дуже мало часу
У мене є 2 дні для прийняття дуже серйозного рішення щодо інструментів та платформ, які моя компанія збирається використовувати для того, щоб перенести свій додаток WPF до Linux / Android / iOS whatnot. Очевидно, я можу вказати своїм старшим, що 2 дні навряд чи достатньо для читання про всі можливі …

9
Чому школи викладають масиви над списком? [зачинено]
Більшість завдань у моїй школі для початкових класів програмування вимагали від мене використання масивів. Зараз я працюю повний робочий день, і ніколи не використовував масив для жодного проекту, над яким працював. Навіть у існуючих проектах я ніде не бачив використання масивів. На мою думку, Список простіший у використанні і є …

5
Як визначати, що метод може бути замінений більш сильним зобов'язанням, ніж визначення того, що метод може бути названий?
Від: http://www.artima.com/lejava/articles/designprinciples4.html Еріх Гамма: Я все ще думаю, що це правда навіть через десять років. Спадкування - це класний спосіб змінити поведінку. Але ми знаємо, що він крихкий, тому що підклас може легко робити припущення щодо контексту, в якому називається метод, який він перекриває. Між базовим класом і підкласом існує …

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

3
Чи є якісь переваги SASS над меншими? [зачинено]
Я намагаюся зробити дослідження цих css-препроцесорів. Чи є якісь переваги використання sass над меншим в якості препроцесора css? Фактори, які я шукаю, включають розмір спільноти, зрілість програмного проекту тощо. Я знаю, що було ще одне питання, пов’язане з цим, але воно не було конструктивно написане та закрите. Оновлення Схоже, завантажувальна …
36 css  less 

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