Программная инженерия

35
Лучший способ для модульного тестирования методов, которые вызывают другие методы внутри того же класса

Недавно я обсуждал с некоторыми друзьями, какой из следующих двух методов лучше всего заглушить, чтобы вернуть результаты или вызовы методов внутри одного класса из методов внутри того же класса. Это очень упрощенный пример. На самом деле функции намного сложнее. Пример: public class MyClass {...

35
Является ли алгоритм более важным, чем язык программирования?

Во время текущего (2013 г.) конкурса Google Code Jam возникла проблема, которая потребовала от C ++ и Java людей более 200 строк кода по сравнению с людьми из Python, которые решили ту же проблему, используя только 40 строк кода. Python не напрямую сопоставим с C ++ и Java, но я думаю, что различие...

35
Это хорошая практика для создания ClassCollection другого класса?

Допустим, у меня есть Carкласс: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } Допустим, мы создаем систему для парковки, я собираюсь использовать много Carклассов, поэтому мы создаем CarCollectionкласс, который может иметь...

35
Лицензии «с открытым исходным кодом», которые явно запрещают военные приложения

Я исследователь, и в своих исследованиях я много занимаюсь программированием. Я большой поклонник концепции открытого исходного кода - особенно в исследованиях, где прозрачность и воспроизводимость уже являются большой частью культуры. Я с радостью вкладываю столько, сколько могу, в сообщество, и...

35
Являются ли частые осложненные конфликты слиянием признаком проблем?

В нашей команде мы используем Git в качестве источника контроля. У нас есть несколько областей кода, которые почти независимы, но имеют некоторое перекрытие. В последнее время мы обсуждали рабочие процессы и подходы к использованию системы контроля версий. Одна жалоба, которая возникает, когда я...

35
Есть ли в Лиспе какие-либо специальные функции, которые НЕ были приняты другими языками программирования?

Есть ли в Лиспе какие-либо специальные функции, которые НЕ были приняты другими языками программирования? Под Лиспом я подразумеваю все языки программирования Лисп в целом. Мне рассказали, как прекрасен Лисп, и я знаю, что многие языки были вдохновлены Лиспом. Но есть ли в Лиспе эксклюзивная...

35
Каковы структуры данных за электронной таблицей?

Я хотел бы понять, как решается электронная таблица (группа именованных или иным образом идентифицированных ячеек, содержащих значения или формулы, ссылающиеся на другие ячейки). Я пытался посмотреть на существующие проекты, но с GUI, сериализацией, событиями и т. Д. Происходило так много всего,...

35
Должна ли директива angularjs напрямую взаимодействовать со службами или она считается анти-паттерном?

Какой из них считается лучше: имея директиву, которая напрямую взаимодействует со службами или иметь директиву, которая выставляет определенные ловушки, с которыми контроллер может связывать поведение (включая службы)?...

35
Повлиял ли постепенный сдвиг в методологии написания кода на производительность системы? И мне все равно?

TD; DR: Был некоторый беспорядок относительно того, что я спрашивал, таким образом, вот движущая идея позади вопроса: Я всегда хотел, чтобы вопрос был таким, какой он есть. Я, возможно, не сформулировал это хорошо изначально. Но намерение всегда было « модульным, разделенным, слабо связанным,...

35
Первый язык программирования банкоматов

Первые банкоматы выполняли такие задачи, как банкоматы, это были автономные автоматы, которые работали с перфокартами, пропитанными карбоном и 6-значным PIN-кодом. Максимальная сумма снятия с карты составляла 10 фунтов, и каждая была одноразовой картой - банкомат проглотил карты! Первый банкомат...

35
Почему build.number является «злоупотреблением» семантическим версионированием?

Я объяснял предлагаемую систему сборки (Gradle / Artifactory / Jenkins / Chef) одному из наших старших архитекторов, и он сделал мне комментарий, с которым я как- то не согласен, но у меня недостаточно опыта, чтобы реально взвесить. Этот проект создает библиотеку Java (JAR) в качестве артефакта для...

35
Почему разработчики не делают автоматическую установку на Windows? [закрыто]

Это обратное к « Почему разработчики не делают мастеров установки в Linux? », Что интересно, но заставило меня подумать: «Автоматическая установка - это естественный способ. Почему они используют мастера?». Итак, вот обратный вопрос: Я уверен, что речь идет не о лени, или что-то в этом роде, но я...

35
Когда имеет смысл сначала скомпилировать свой язык в код на C?

При разработке собственного языка программирования, когда имеет смысл писать конвертер, который берет исходный код и преобразует его в код на языке C или C ++, чтобы я мог использовать существующий компилятор, такой как gcc, для получения машинного кода? Есть проекты, которые используют этот...

35
Соглашения об именах DAL, BAL и UI Layer [закрыто]

Я разрабатываю типичное веб-приложение со следующими слоями UI Layer (MVC) Уровень бизнес-логики (BAL) Уровень доступа к данным (DAL) Каждый слой имеет свой собственный объект DTO, включая BAL и DAL. Мои вопросы по этому поводу следующие DTO, возвращенный DAL, просто преобразуется в соответствующий...

35
Код, который преобразует значение в другое представление, а затем преобразовывает его обратно в исходное состояние, является плохим, но как? [закрыто]

Я читал статью о плохих практиках программирования . Это упомянуто - «Код Yo-Yo», который преобразует значение в другое представление, а затем преобразует его обратно в исходное положение (например, преобразование десятичного числа в строку и затем обратно в десятичное, или заполнение строки и...

35
Каков наилучший способ инициализации ссылки ребенка на его родителя?

Я разрабатываю объектную модель, которая имеет много разных родительских / дочерних классов. Каждый дочерний объект имеет ссылку на свой родительский объект. Я могу придумать (и попробовал) несколько способов инициализации родительской ссылки, но я нахожу существенные недостатки каждого подхода....

35
Какой смысл с HATEOAS на стороне клиента?

Как я сейчас понимаю, HATEOAS - это, в основном, отправка вместе с каждым ответом ссылок с информацией о том, что делать дальше. Один простой пример легко найти в Интернете: банковская система вместе с ресурсом счета. В примере показан этот ответ после запроса GET к ресурсу учетной записи. GET...

35
Что означает «не сочинять»?

Я вижу много текстов, особенно тексты о функциональном программировании, утверждающие, что определенные концепции CS «не сочиняются» . Примеры: замки не сочиняются, монады не сочиняются. Мне было трудно найти точное значение этой фразы. Когда я думаю о композиции, я имею в виду либо композицию...

35
Является ли Node.js фреймворком? [закрыто]

Я продолжаю видеть, что рекрутеры, разработчики и т. Д. Называют Node.js фреймворком. На мой взгляд, это из-за незнания того, чем на самом деле является Node.js. Часто в должностных инструкциях Node.js группируется как библиотека среди AngularJS , React и т. Д. Обычно я вижу, что ее вводит кто-то,...