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

130
Почему Java 8 не включает неизменяемые коллекции?

Команда Java проделала огромную работу по устранению барьеров для функционального программирования в Java 8. В частности, изменения в коллекциях java.util делают большую работу по объединению преобразований в очень быстрые потоковые операции. Учитывая, как хорошо они проделали работу, добавив...

130
Почему операторы во многих языках программирования заканчиваются точкой с запятой?

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

130
Понимание различий: традиционный интерпретатор, JIT-компилятор, JIT-интерпретатор и AOT-компилятор

Я пытаюсь понять разницу между традиционным интерпретатором, компилятором JIT, интерпретатором JIT и компилятором AOT. Интерпретатор - это просто машина (виртуальная или физическая), которая выполняет инструкции на каком-то компьютерном языке. В этом смысле JVM является интерпретатором, а...

130
Как я могу тактично предложить улучшения плохо продуманного кода других во время проверки?

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

130
Приводит ли разработчик к более медленной машине разработки к более быстрому / более эффективному коду? [закрыто]

Предположим, я дал своим разработчикам кричащую быструю машину. VS2010 на основе WPF загружается очень быстро. Затем разработчик создает приложение WPF или WPF / e, которое отлично работает на своем компьютере, но в реальном мире работает намного медленнее. Этот вопрос состоит из двух частей ... 1)...

129
Есть ли способ быстрее решить проблемы? Я только что получил предупреждение от моего босса [закрыто]

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

129
Демонстрировать плохой код клиенту?

Клиент попросил меня сделать редизайн своего веб-сайта, приложения ASP.NET Webforms, разработанного другим консультантом. Это казалось относительно простой работой, но, посмотрев на код, стало ясно, что это не так. Это приложение не было написано хорошо. Вообще. Он чрезвычайно уязвим для атак с...

129
Являются ли исключения в качестве контрольного потока серьезным антипаттерном? Если так, то почему?

Еще в конце 90-х я довольно много работал с базой кода, которая использовала исключения в качестве управления потоком. В нем реализован конечный автомат для управления приложениями телефонии. В последнее время мне вспоминаются те дни, потому что я занимался веб-приложениями MVC. У них обоих есть...

128
Являются ли частные, не угадываемые URL-адреса эквивалентными аутентификации на основе пароля?

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

128
Когда исправление ошибок становится излишним, если вообще?

Представьте, что вы создаете видеоплеер на JavaScript. Этот видеопроигрыватель многократно зацикливает видео пользователя, используя рекурсивную функцию, и поэтому браузер too much recursion RangeErrorв какой-то момент запускает . Вероятно, никто не будет так часто использовать функцию цикла. Ваше...

127
Как увеличение сложности систем повлияло на последующие поколения программистов?

Как «новый» программист (я впервые написал строку кода в 2009 году), я заметил, что относительно легко создать программу, которая сегодня демонстрирует довольно сложные элементы с такими вещами, как .NET Framework, например. Создание визуального интерфейса или сортировка списка теперь могут быть...

127
Как я должен проверить случайность?

Рассмотрим метод случайного перемешивания элементов в массиве. Как бы вы написали простой, но надежный модульный тест, чтобы убедиться, что он работает? У меня есть две идеи, каждая из которых имеет заметные недостатки: Перемешайте массив, затем убедитесь, что его порядок отличается от предыдущего....

127
Каковы реальные последствия для лицензии Apache 2? [закрыто]

Я хочу использовать SVG Edit для проекта. Это программное обеспечение распространяется под лицензией Apache 2. Я видел это: все копии, модифицированные или неизмененные, сопровождаются копией лицензии все модификации четко обозначены как работа модификатора все уведомления об авторских правах,...

127
Односимвольные константы лучше литералов?

Недавно я столкнулся с классом, который предоставляет почти каждый отдельный символ в качестве константы; все от COMMAдо BRACKET_OPEN. Интересно, было ли это необходимо; Я прочитал «статью», в которой говорится, что может быть полезно перенести односимвольные литералы в константы. Итак, я...

127
Как я должен взимать плату за программирование вещей, которые занимают две минуты, чтобы исправить? [закрыто]

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

126
Каковы худшие ложные экономики в разработке программного обеспечения? [закрыто]

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

126
Почему большинство из нас использует 'i' в качестве переменной счетчика цикла?

Кто-нибудь задумывался над тем, почему многие из нас повторяют один и тот же шаблон, используя одни и те же имена переменных? for (int i = 0; i < foo; i++) { // ... } Кажется , больше всего кода я когда - либо смотрел на использований i, j, kи так далее , как итерационных переменных. Я полагаю,...

126
Есть ли что-нибудь, что можно сделать с помощью рекурсии, что нельзя сделать с помощью циклов?

Есть моменты, когда использование рекурсии лучше, чем использование цикла, и времена, когда использование цикла лучше, чем использование рекурсии. Выбрав «правильный», можно сэкономить ресурсы и / или получить меньше строк кода. Есть ли случаи, когда задача может быть выполнена только с...

126
Должна ли переменная называться Id или ID? [закрыто]

Это немного педантично, но я видел, как некоторые люди используют Idкак: private int userId; public int getUserId(); и другие используют: private int userID; public int getUserID(); Одно из них лучше, чем другое? Почему? Я видел, что это было сделано очень непоследовательно в больших проектах. Если...

126
Уместно ли интервьюерам спрашивать у кандидатов свое имя пользователя в Stack Exchange? [закрыто]

Считаете ли вы это уместным, если вас попросили указать ваше имя пользователя в Stack Exchange на собеседовании по программному обеспечению (или в качестве вопроса для предварительного собеседования)? Мне кажется, что это очень разумный запрос, который был бы чрезвычайно информативным - я уверен,...