Рубрика «Программирование» - 1028

Подари кусочек кода на рождество

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

24 Pull Request — это Open Source инициатива, приуроченная к (католическому) рождеству. Авторы призывают сказать Спасибо тем людям, труд которых, и возможно не раз, помогал Вам в решении разнообразных проблем, и предлагают делать для этого по коммиту в день, вплоть до самого (католического) рождества.

Читать полностью »

В интернете довольно много говорят о новых возможностях C++11: auto, lambda, variadic templates. Но как-то обошли стороной новые возможности работы с исключениями, которые предоставляет язык и стандартная библиотека.

От предыдущей версии стандарта остался механизм генерации исключений (throw), проверка того, что мы находимся в процессе обработки исключения (std::uncaught_exception), механизм остановки, если исключение не было обработано. Также есть иерархия стандартных исключений на базе класса std::exception.

Новый стандарт добавляет к этим вещам еще несколько сущностей, которые, на мой взгляд, могут существенно упростить работу с исключениями в C++.

Читать полностью »

image
Пару лет назад, когда деревья были большие и зеленые, ко мне пришли злые дотнетчики, и сказали — ага, попался! пришлось мне помочь коллегам в одном весьма странном проекте.

А именно — представьте себе пачку цифирей, которые аналитики составляют раз в месяц, в любимом ими пакете MS Office. И вот раз в месяц появилась необходимость эти цифры пережевывать и загружать в БД под управлением MS SQL.

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

Читать полностью »

Выбор ORM стратегии (.NET)

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

image

Дискутируем на тему организации и поддержки актуальных девелопмент-сред в команде разработчиков. Приходим к выводу, что все пути работы с зависимостями ведут к правильным инструментам автоматизации. Сила программиста — в бороде! Полезности для пользователей OS X.

В выпуске:

IT Компот #31. Девелопмент окружения, менеджмент зависимостей Подписаться в iTunes
IT Компот #31. Девелопмент окружения, менеджмент зависимостей RSS Feed
Cлушать на podfm
Скачать файл (50.2 Мб/54:47 MP3, 128 kbps)
Читать полностью »

Вступление

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

Здесь и далее имеются в виду компоненты в смысле частей одного одного процесса. Компоненты, являющиеся отдельными процессами или сервисами, работа с которыми идет через RPC или еще как-то, здесь не рассматриваются. Хотя в большой мере все нижесказанное относится и к ним.

Пример первый:
Мне нужен компонент, давно разработанный и протестированный в другом отделе. Подхожу к разработчику. Завязывается диалог:
— Вот мне нужна вот эта штука. Как мне ее использовать в своем проекте?
— Да, вот нужно залить проект из CVS вот по этой метке. Скомпилить. Получится либа, и вот с ней нужно линковаться.
— Ок, спасибо.
Выкачиваешь проект. Компилишь. Вылезает куча ошибок, не хватает каких-то инклудов. Начинаешь выяснять. Оказывается для сборки проекта надо выкачать из CVS еще кучу проектов, их тоже собрать. Некоторые собираются стандартно студией, некоторые с бубном, вроде autoconf, make и иже с ними. Все. Собралось. Начинаются проблемы с линковкой. Не линкуется одно, второе, третье. Сторонних библиотек не хватает. В итоге — куча потерянного времени на непроизводительный труд и вникание в использованные библиотеки, сторонние компоненты и технологии.
Читать полностью »

Мир разработчиков программного обеспечения разделен на два лагеря. Знатоки языков поют дифирамбы мощи высокоуровневого программирования — функциям высшего порядка, метапрограммированию, аспектно-ориентированному программированию, рефлексии и т.д. Знатоки инструментов имеют хорошие навыки использования утилит для сборки и отладки, документирования и автодополнения, рефакторинга и тестирования. Знатоки языков склоняются к использованию для разработки текстовых редакторов типа emacs, vim или подобных — они хорошо подходят для почти любых языков, включая новые. Знатоки инструментов выбирают IDE, такие как Visual Studio, Eclipse, или IntelliJ, включающих в себя целые наборы специализированных средств разработки.

Язык vs инструмент

Новые языки программирования, такие, к примеру, как Laszlo или Groovy, и новые расширения языков, такие как AOP, обычно доступны только для использования средствами универсального текстового редактора, пока не получат полноценную поддержку в какой-нибудь IDE. Спустя какое-то время, если язык действительно «выстрелил», эта поддержка, несомненно, появится. Это происходит не потому, что сделать нужный инструментарий слишком сложно. Это происходит потому, что вложение усилий в разработку языка и вложение усилий в разработку средств для него находятся в несколько ортогональных плоскостях и порой даже вытесняют друг друга. И вот почему.
Читать полностью »

Рабочее место кассира для touch screen и программируемой клавиатуры продавца в «1С: Розница» Вашему вниманию предлагается текст одного из технических проектов «1С: Розница 8», он описывает процесс разработки интерфейса РМК, с которым, нынче, работают кассиры очень многих магазинов.

Рабочее место кассира для touch screen и программируемой клавиатуры продавца в «1С: Розница» Основное внимание в проекте уделяется тому, как сделать простой, понятный и гибкий интерфейс рабочего места кассира, с которым можно работать с помощью:

  • сенсорного монитора,
  • программируемой клавиатуры продавца,
  • обычной клавиатуры и мыши.

Так уж получилось, что я стал автором и разработчиком «1С: Розница», что это и почему я публикую технические проекты описал в предыдущем материале.

Читать полностью »

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

Читать полностью »

Программирование ума человека. Или как стать счастливым (айтишником?)
В статье используются фото Dimitri Daniloff www.dimitridaniloff.com
На Хабре много статей про программирование разнообразных устройств, а вот о программировании ума человека я статей не видел. Постараюсь восполнить этот пробел, ведь многие со мной согласятся, что ум – это основной инструмент и главный актив любого айтишника.

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

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

Отличной новостью является то, что для работы с приведенными в статье системами не требуется никакого дополнительного оборудования.

Отказ от ответственности

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js