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

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

5
Алгоритм выравнивания диапазонов перекрытия
Я ищу хороший способ выравнивания (разделения) списка потенциально перекрывающихся числовых диапазонов. Проблема очень похожа на проблему этого вопроса: самый быстрый способ разделения перекрывающихся диапазонов дат и многие другие. Тем не менее, диапазоны не только целые числа, и я ищу достойный алгоритм, который может быть легко реализован в Javascript или Python …

2
Создание вложенных функций по чисто эстетическим причинам?
Мне всегда было интересно, что другие программисты думают об идее создания чисто эстетических функций. Скажем , у меня есть функция , которая обрабатывает кусок данных: Function ProcessBigData. Скажем , мне нужно несколько шагов процесса, действительны только для этих данных: Step1, Step2, Step3. Обычный подход, который я вижу больше всего в …

3
Запутался в определении «абстракции» в ООП
Я пытаюсь понять определение «абстракции» в ООП. Я столкнулся с несколькими основными определениями. Они все действительны? Один из них не прав? Я не совсем понимаю. (Я переписал определение своими словами). Определение 1: Абстракция - это концепция взятия какого-либо объекта из реального мира и преобразования его в термины программирования. Такие , …

5
Как избежать чрезмерной перегрузки метода?
У нас довольно много мест в исходном коде нашего приложения, где один класс имеет много методов с одинаковыми именами и разными параметрами. Эти методы всегда имеют все параметры «предыдущего» метода плюс еще один. Это результат долгой эволюции (устаревший код) и такого мышления (я считаю): « Есть метод M, который выполняет …

6
С точки зрения TDD, я плохой человек, если я проверяю против живой конечной точки, а не надругаться?
Я следую TDD религиозно. Мои проекты обычно имеют 85% или лучше тестовое покрытие, со значимыми тестовыми примерами. Я много работаю с HBase , и основной интерфейс клиента, HTable, очень неприятен. Для написания модульных тестов у меня уходит в 3 или 4 раза больше времени, чем для написания тестов, использующих действующую …

4
Почему машинный код не может быть легко декомпилирован?
Благодаря языкам виртуальных машин на основе байт-кода, таким как Java, VB.NET, C #, ActionScript 3.0 и т. Д., Вы иногда слышите о том, как легко просто загрузить какой-то декомпилятор из Интернета, запустить байт-код через него в одно удобное время и часто за несколько секунд придумывает что-то не слишком далекое от …

4
Как перейти от сборки к машинному коду (генерация кода)
Есть ли простой способ визуализировать шаг между сборкой кода в машинный код? Например, если вы откроете бинарный файл в блокноте, вы увидите текстовое представление машинного кода. Я предполагаю, что каждый байт (символ), который вы видите, является соответствующим символом ascii для его двоичного значения? Но как нам перейти от сборки к …

4
Нормально ли для разработчиков предлагать конструктивные идеи владельцам продуктов? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос?Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Я начал работать в качестве разработчика довольно недавно, прежде чем работал системным администратором. Я понимаю, …

8
Каковы общие процессы проверки кода и что считается плохим?
Моя компания недавно начала делать формализованные проверки кода. Процесс идет следующим образом: вы отправляете в github, запрашиваете запрос на извлечение, код проверяется примерно тремя людьми, а затем, если все прошло, ваш код входит. Процесс кажется справедливым, однако три человека, которые делают обзоры кода, не кажутся справедливыми. Я замечаю, что когда …

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

2
Алгоритм быстрого поиска по тегам
Проблема в следующем. Есть набор простых объектов E, к каждому из которых прикреплен набор тегов T. Каждый объект может иметь произвольное количество тегов. Общее количество объектов составляет около 100 миллионов, а общее количество тегов составляет около 5000. Итак, исходные данные примерно такие: E1 - T1, T2, T3, ... Tn E2 …

4
Почему так сложно набирать на работу, связанную с компилятором? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . На прошлой неделе несколько моих коллег и я участвовали в ярмарках вакансий в трех …

2
Интерфейс без побочных эффектов поверх библиотеки с сохранением состояния
В интервью с Джоном Хьюзом, где он говорит об Эрланге и Хаскеле, он может сказать следующее об использовании библиотек с сохранением состояния в Эрланге: Если я хочу использовать библиотеку с состоянием, я обычно строю поверх нее интерфейс без побочных эффектов, чтобы затем безопасно использовать его в остальной части своего кода. …

3
Как применяются дженерики?
Это вопрос с точки зрения внутренних возможностей компилятора. Меня интересуют обобщения, а не шаблоны (C ++), поэтому я пометил вопрос с помощью C #. Не Java, потому что AFAIK дженерики в обоих языках отличаются в реализации. Когда я смотрю на языки без обобщений, это довольно просто, вы можете проверить определение …
16 c#  generics 

1
Понимание структуры посетителя
У меня есть иерархия классов, которая представляет элементы управления GUI. Что-то вроде этого: Control->ContainerControl->Form Я должен реализовать ряд алгоритмов, которые работают с объектами, делающими разные вещи, и я думаю, что шаблон Visitor будет самым чистым решением. Давайте возьмем, например, алгоритм, который создает представление XML иерархии объектов. Используя «классический» подход, я …

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