Как стать автором
Обновить
34
0.1
Джон Смит @petejones83

Пользователь

Отправить сообщение

О классификации кода

Время на прочтение4 мин
Количество просмотров1.7K

О, коде

Когда я пишу код, мне нравится отдавать себе отчёт о том, что именно я делаю.

Например, код, который пишется за одну ночь для демы завтра утром сильно отличается от кода, который станет основным API системы.

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

Читать дальше →
Всего голосов 115: ↑100 и ↓15+85
Комментарии46

Печать книг по программированию в домашних условиях

Время на прочтение1 мин
Количество просмотров28K
Честно говоря, никогда не любил читать техническую литературу с экрана. Художественную — сколько угодно — читал и с компа и с телефона и, как вот уже лет 5-6, с КПК (хотя, бесспорно, всегда отдавал предпочтение книгам бумажным). А вот техническую — хоть ты тресни — только с бумаги воспринимаю.

Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.

Читать дальше →
Всего голосов 182: ↑163 и ↓19+144
Комментарии163

Что такое Pimpl по версии Qt, и с чем его едят!

Время на прочтение12 мин
Количество просмотров39K

Вступление.



Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на "_p.h".
В этой статье я попробую приоткрыть ширму за всей это структурой.

Pimpl, что это?


Pimpl — Pointer to private implementation. Это одно из названий паттерна программирования. Еще его называют чеширским котом — «Cheshire Cat» (это название мне больше нравится). В чем суть этого паттерна? Основная идея этого паттерна — это вынести все приватные члены класса и, в не которых случаях, функционала в приватный класс.
Отсюда название «чеширский кот» — видно только улыбку, а все остальное остается невидимым, но оно несомненно есть :-) Кто не помнит этого замечательного кота, может обратится к первоисточнику, к книге Льюиса Кэрролла «Алиса в стране чудес». Очень интересная книга, особенно если читать в оригинале.
Что это дает?
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии70

Приватные слоты в паттерне Pimpl от Qt

Время на прочтение10 мин
Количество просмотров7.5K

Вступление.


Недавно я писал по поводу реализации паттерна Pimpl в библиотеке Qt и призывал людей следовать такому подходу при разработке их собственных бибиотек. Теперь я хочу поговорить о таком понятии, как приватные слоты и тем самым продолжить эту тему. Заключительной статьей на эту тему будет реализация механизма Implicit Sharing и shared d-pointer.

Что это и зачем это нужно.


Приватные слоты — это механизм дополняющий функционал d-указателей. Он позволяет реализовать слоты для приватного класса, даже если он не является наследником от QObject (обычно он им и не является), но для этого публичный класс должен быть наследником от QObject. Тоесть по факту создается некий приватный слот в публичном классе и он непосредственно дергает нужный метод приватного класса.
Зачем это нужно? Ну рассмотрим на примере. Есть класс QAbstractScrollArea. Он просто отображает некий виджет (viewport) и обеспечивает прокрутку. Прокрутка обеспечивается с помощью двух экземпляров класса QScrollBar. Сами эти скролбары он хранит в приватном классе. Теперь проблемма: как подключить сигнал от скроллбара об изменение его позиции с классом QAbstractScrollAreaPrivate, ведь он не является QObject'ом? Сделать его наследником от QObject — лучше не делайте это :-). Можно сделать слот в публичном классе и повесить на него, то в таком случае это не очень красиво — так как наружу выходят слоты от внутренней реализации. Вот ту Qt-шниками был придуман достаточно разумный и элегантный подход — приватные слоты.

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии17

Повышение работоспособности: как я избавился от бессонницы

Время на прочтение2 мин
Количество просмотров13K
У многих айтишников есть проблемы со сном. Ниже — описание моей проблемы и метод, которым я её решил.

image
Несколько недель назад я получил сразу три крупных заказа, каждый из которых был жёстко ограничен сроками. Проекты были действительно интересными и хорошо оплачиваемыми, поэтому первые несколько дней я работал практически без сна. Естественно, производительность начала снижаться. Дошло до того, что я начал ловить себя на том, что несколько минут(!) я «тупо втыкал» в монитор, ничего при этом не делая, и даже не замечая своего аут-состояния.

Тогда я решил: всё, пора нормально выспаться. Сохранив всё «как есть», я отправился в постель… и понял, что проблема отнюдь не решена.
Читать дальше →
Всего голосов 150: ↑144 и ↓6+138
Комментарии190

Как найти время на все

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

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

Данная статья содержит 16 советов, которые помогут вам лучше распорядиться своим временем и найти время для нужд личного характера. Также представлены несколько других ресурсов, которые улучшат ваши навыки управления временем.
Итак, приступим...
Всего голосов 88: ↑50 и ↓38+12
Комментарии52

О всемогущем рандоме

Время на прочтение5 мин
Количество просмотров7.8K
image

Умный shuffle для плееров



В топике хотелось бы поделиться мыслями насчет того, каким должно быть «случайное воспроизведение» в плеерах (особенно это касается портативных плееров типа iPod)
Сам я являюсь владельцем iPod touch и постоянно пользуюсь им в машине, подключая его через AUX к магнитоле.
Фирма Apple изобрела какой-то «умный плейлист» — так называемый genius, но он как-то использует интернет и мнения других пользователей itunes.

Хотелось бы слышать и слушать именно то, что хочется слышать. Под катом собственно суть идеи.
Читать дальше →
Всего голосов 77: ↑64 и ↓13+51
Комментарии80

Личный тайм-менеджмент

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

Поэтому я попробую исправить этот недочёт.

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

Welcome!

Читать дальше →
Всего голосов 194: ↑177 и ↓17+160
Комментарии155
2

Информация

В рейтинге
3 964-й
Откуда
Россия
Зарегистрирован
Активность