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

Q & A для профессионалов, преподавателей и студентов, работающих в жизненном цикле разработки систем

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

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

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

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

30
Приводит ли разработчик к более медленной машине разработки к более быстрому / более эффективному коду? [закрыто]
Предположим, я дал своим разработчикам кричащую быструю машину. VS2010 на основе WPF загружается очень быстро. Затем разработчик создает приложение WPF или WPF / e, которое отлично работает на своем компьютере, но в реальном мире работает намного медленнее. Этот вопрос состоит из двух частей ... 1) Если я дам разработчику более …
130 ide  testing  performance 

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

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

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

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

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

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

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

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

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

18
Как я должен взимать плату за программирование вещей, которые занимают две минуты, чтобы исправить? [закрыто]
Я действительно смущен этим. Я считаю, что чем больше у меня опыта, тем больше я становлюсь экспертом в поиске ошибок и их быстром исправлении. Теперь мой начальник получил веб-сайт от программиста, который делает очень плохое кодирование. Теперь он отправляет список проблем, которые нужно исправить. Предположим, что это проблема с таблицей …
127 freelancing 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.