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

36
Существуют ли устаревшие методы многопоточного и многопроцессорного программирования, которые я больше не должен использовать?

В первые дни FORTRAN и BASIC, по существу, все программы были написаны с заявлениями GOTO. Результатом стал код спагетти, а решение - структурированное программирование. Точно так же указателям может быть сложно контролировать характеристики в наших программах. C ++ начинался с множества...

36
Я начинающий. Могу ли я сразу начать изучать C ++ 11? или я должен выучить старый C ++? [закрыто]

Я новичок, и у меня мало знаний в программировании. Было бы хорошо, если бы я непосредственно изучал C ++ из книг, которые охватывают новый C ++ 11, или я должен изучать старые лучшие книги по C ++? Должен ли я иметь немного знаний о C ++ до изучения C ++ 11? или я могу начать прямо оттуда? Не...

36
Эквивалент принципов SOLID для функционального программирования

Я нашел принципы SOLID весьма полезными, когда размышляю над объектно-ориентированным дизайном. Существует ли подобный / эквивалентный набор не зависящих от языка принципов, адаптированных для функционального...

36
В какой точке / диапазоне файл кода слишком велик?

Я нахожу много файлов по 2-3 тыс. Строк, и на самом деле не кажется, что они должны быть такими большими. Что является хорошим критерием, чтобы объективно называть файл исходного кода «слишком большим»? Существует ли такая вещь, как максимальное количество строк, которое должен иметь файл исходного...

36
Как избежать большого и неуклюжего UITableViewController на iOS?

У меня проблема при реализации MVC-паттерна на iOS. Я искал в Интернете, но, похоже, не нашел хорошего решения этой проблемы. Многие UITableViewControllerреализации кажутся довольно большими. Большинство примеров, которые я видел, позволяют UITableViewControllerреализовать...

36
Есть ли преимущества SASS перед LESS? [закрыто]

Я пытаюсь провести исследование этих препроцессоров CSS. Есть ли какие-либо преимущества использования sass по сравнению с less в качестве препроцессора css? Факторы, которые я ищу, включают размер сообщества, зрелость проекта программного обеспечения и т. Д. Я знаю, что был еще один вопрос,...

36
Как вы должны TDD игра Yahtzee?

Допустим, вы пишете в стиле ЯХДЗИ в стиле TDD. Вы хотите проверить часть кода, которая определяет, является ли набор из пяти бросков кубика фулл-хаусом. Насколько я знаю, при выполнении TDD вы следуете следующим принципам: Сначала напишите тесты Напишите простейшую вещь, которая работает Уточнение...

36
Уместно ли иметь положительные комментарии в обзорах кода или это исключительно для конструктивной критики?

В последнее время я много пересматривал код, и я не уверен в положительных и отрицательных эффектах и ​​профессионализме добавления положительных и / или забавных комментариев в обзоры кода. Мы используем Github в качестве нашей платформы для проверки кода в моей команде, поэтому комментарии могут...

36
Разница между кучей и приоритетной очередью

Я всегда считал , что отвалы и приоритетные очереди были синонимами - абстрактная структура данных , которая поддерживает insert, findMinи deleteMinоперации. Некоторая литература, кажется, согласна со мной - например, чисто функциональные структуры данных Криса Окасаки (глава 3). С другой стороны,...

36
Как определить «или» логически

Недавно я столкнулся с проблемой, которая требовала от меня определения логического оператора «ИЛИ» программно, но без использования самого оператора. Я придумал вот что: OR(arg1, arg2) if arg1 = True and arg2 = True return True else if arg1 = True and arg2 = False return True else if arg1 = False...

36
Что такое 4 и 5 поколения языков программирования? Их больше? [закрыто]

Поскольку это часто классифицируется на уровне школы / колледжа, популярные языки программирования (C #, Java, C ++) - это все языки 3-го поколения (с более высоким уровнем абстракции от физических частей машины). Кроме того, языки ассемблера классифицируются как 2-е, а машинные языки - как языки...

36
Как принимать важные технические решения за минимальное время

У меня есть 2 дня, чтобы принять очень серьезное решение об инструментах и ​​платформах, которые моя компания собирается использовать для переноса своего приложения WPF на Linux / Android / iOS и так далее. Очевидно, я могу указать своим старшим, что двух дней вряд ли хватит на чтение обо всех...

36
Кэширование на бизнес-уровне против Кэширования на уровне данных

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

36
Почему школы учат массивы по списку? [закрыто]

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

36
Почему методы, которые принимают неограниченное количество параметров, часто определяют перегрузки с меньшим количеством параметров?

Например, System.IO.Path.Combineметод в .NET имеет следующие перегрузки: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Какой смысл последних трех? Первый будет охватывать их все, как будто вы смотрите внимательно, он...

36
Повторно использовать объединенную ветку, хорошая практика?

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

36
Есть ли смысл использовать ES6 Map, когда все ключи являются строками?

Ключи простого объекта должны быть строками, а Mapключи могут иметь ключи любого типа. Но я практически не пользуюсь этим на практике. В любом случае я почти всегда использую строки в качестве ключей. И, вероятно new Map(), медленнее, чем {}. Так есть ли какая-то другая причина, почему может быть...

36
Есть ли необходимость сохранять тесты для простых (автономных) функций?

Учти это: public function polynominal($a, $b, $c, $d) { return $a * pow($x, 3) + $b * pow($x, 2) + $c * $x + $d; } Предположим, вы пишете различные тесты для вышеуказанной функции и доказываете себе и другим, что «это работает». Почему бы тогда не удалить эти тесты и жить долго и счастливо? Я хочу...

36
Как определить, что метод может быть переопределен более сильным обязательством, чем определение, что метод может быть вызван?

От: http://www.artima.com/lejava/articles/designprinciples4.html Эрих Гамма: Я все еще думаю, что это правда, даже после десяти лет. Наследование - это крутой способ изменить поведение. Но мы знаем, что это хрупко, потому что подкласс может легко делать предположения о контексте, в котором...