Как стать автором
Обновить
43
0
Dmitry @RPG18

Golang Developer

Отправить сообщение
Совершенно недоказанное утверждение без всяких отсылок :(

Это интуитивно понятно всем, кто писал конкурентные программы. Как вы будете в C/C++ искать deadlock, livelock, race condition таким способом?
Крупные компании вполне себе могут позволить PVS-Studio. CppCat позиционировался как нишевый продукт, т.е. для малых и средних компаний. А в малых компаниях руководство просто не понимает, зачем им нужен статический анализатор или коммерческая IDE.
Почему программирование доставляет удовольствие? Как вознаграждаются все усилия профессионала?

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

Второе — это радость создания вещей, полезных другим людям. Где-то в глубине души мы хотим, чтобы другие использовали нашу работу и находили ее полезной. В этом смысле продукт программирования не слишком отличается от первой детской подставки для карандашей «в подарок папе».

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

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

И последнее — это удовольствие работать с очень гибким материалом. Программист, как поэт, работает почти исключительно головой. Он строит свои замки в воздухе и из воздуха только силой своего воображения. Очень редко материал для творчества допускает такую гибкость, такую возможность столь частых улучшений и переделок и такими простыми средствами позволяет осуществлять громадные замыслы. (Но, как мы увидим позднее, эта же самая гибкость порождает свои проблемы)

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

Программирование доставляет нам радость, потому что позволяет удовлетворить стремление к творчеству, глубоко заложенное в каждом из нас, и разделить это чувство радости с другими.

Фредерик Брукс, «Мифический человеко-месяц»
Как вы притащили на сервис столько народа?
папок директории проекта.

Есть такая штуку как Матрица компетентности программиста, там есть такой пункт Организация дерева исходников, в котором
Структура дерева исходного кода соответствует логической иерархии и организации кода в проекте.
Глядя на имена файлов и структуру папок, можно понять как спроектирована данная система.

Встречал такой подход в нескольких фирмах в которых работал, и это чертовски удобно, когда тебе говорят: -вон там наш старый проект, теперь ты будешь его поддерживать.
Можно увидеть конфигурационный файл PostgreSQL?
А как это вы свели задачу к поиску оптимального пути?
Легко сказать, сложно сделать, да и зачем? Наша компания зарабатывает за счет оказания тех поддержки, поэтому нам известны графы реальных сетей и в них нет какого то гигантского количества вершин и ребер. ПО крутится на серверах под GLU/Linux и мы всегда можем расширить стек.
Особенность предметной области:
— статическая маршрутизация;
— балансировка каналов связи;
— аварии на каналах связи.

Т. е. трафик может пойди самым невообразимым путем и не пройти по ребру из остовного дерева.
На некоторых графах решением является множество ребер, которые не связаны общими вершинами, т. е. там могут не быть деревьев.

Задача: дан граф телефонной сети оператора. Узлы гафа АТС, ребра канал связи с которого можно собирать сигнальный трафик. Необходимо построить минимальное покрытие ребер, накрывающее все пути в графе.

Т.к. тех. директор отложил на неопределенное время, то дальше рабочего рекурсивного алгоритма не ушло.
Последний раз когда использовал рекурсию, решал NP задачку на графах и не рекурсивного алгоритма с ходу не придумал.
Под рабами подразумевал ядра/сервера. Если правильно подсчитал, то в вашей задаче имели порядка 3.6Gb данных каждый час, последовательная обработка 1k сообщений на одном ядре занимает порядка 2-ух часов.

Решение IBM вполне себе оправдано, где найдешь на рынке труда 10 000 готовых сотрудников?
Как понимаю рабы никуда не делись, мы просто задали им другой алгоритм работы?
Все что касается IDE это все очень субъективно. Лично я GUI делаю в Eclipse CDT + Qt Designer, и лично для меня это намного удобней чем QtCreator. И знаю людей, для которых это удобно делать в Vim, Emacs, NetBeans, KDevelop, Code::Blocks.
Так, к примеру, работает утилита MIB Walk в составе Engineer's Toolset от SolarWinds, которая ту же «киску» с моего компьютера опрашивает 3,5 – 4 минуты

Из своего опыта разработчика систем мониторинга чую SNMPv1.
SNMPv1 появился в 1988 году, SNMPv2 в 1993. Устройств без SNMPv2/3 еще надо поискать.
Начиная с v2 появился GetBulkRequest(замена GetNext), с которым snmpbulkwalk работает на порядок быстрее snmpwalk.
У Erlang нет мегасуперпупер коммерческой IDE, и это как то не очень мешает ему развиваться.
Для этих целей есть QAbstractProxyModel.
В инженерных задачах обычно QAbstractItemModel является обёрткой вокруг структур данных/объектов из предметной области.
Если прокси-модель знает об этих структурах данных, то можно обойтись без перегонки данных через QVariant.
Если производительности не хватает, то можно в прокси-модель засунуть OpenMP
Впечатляет, но в Qt есть еще один фреймворк это QtQuick. Я стараюсь использовать QtQuick везде, где нужно сильно кастомезированное UI.
Может таблица, может идентификатор узла в списка или дерева.
А может это не идентификатор указывающий на ресурс, а некий объект. Принцип инкапсуляции и слоистая архитектура скрывают от меня эту информацию.
Из подобных примеров у нас есть std::lock_guard, который так же работает в RAII-стиле(забавно, там так же в пример приводят lock_guard).

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность