Как стать автором
Обновить

Вышел плагин Revars 2.0.0

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

Revars - это плагин, позволяющий делать замену одного содержимого страницы другим. Чаще всего он используется для создания и работы с собственными переменными вида {VAR_...}. Например создав переменную {VAR_PHONE} вы можете везде на сайте указывать именно её, а сам номер телефона менять только в настройках плагина. {VAR_INN}, {VAR_BRAND_NAME}, {VAR_YANDEX_MAP_SCRIPT} - вариантов для использования переменных множество.

Плагин может учитывать utm-метки и в зависимости от них отображать содержимое страницы, что превращает Joomla в мультилендинг. Также плагин обрабатывает мета-теги: вы можете использовать переменные в тегах title и meta-description страницы. Также плагин может выводить языковые константы Joomla.

Читать далее
Всего голосов 6: ↑4 и ↓2+4
Комментарии3

Что значит инициализировать int в C++?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров14K

Недавно я получил по почте от Сэма Джонсона этот вопрос. Вот слегка отредактированное письмо Сэма:

«Возьмём для примера этот код в локальной области видимости функции:

int a;

a = 5;

Многие люди считают, что инициализация происходит в строке 1, потому что веб-сайты наподобие cppreference дают такое определение: "Инициализация переменной предоставляет его начальное значение на момент создания".

Однако я убеждён, что инициализация происходит в строке 2, потому что [в разных хороших книгах по C++] инициализация определяется как первое существенное значение, попадающее в переменную.

Можете ли вы сказать, какая строка считается инициализацией?»

Отличный вопрос. На Cppreference написано правильно, и для всех классовых типов ответ прост: объект инициализируется в строке 1 вызовом его стандартного конструктора.

Но (а вы ведь знали, что будет «но») для локального объекта фундаментального встроенного типа наподобие int ответ будет... чуть более сложным. И именно поэтому Сэм задал этот вопрос, ведь он знает, что язык достаточно свободно обращается с инициализацией таких локальных объектов по историческим причинам, имевшим в то время смысл.

Короткий ответ: вполне допустимо говорить, что переменная получает своё исходное значение в строке 2. Но заметьте, что я намеренно не сказал «Объект инициализируется в строке 2», к тому же и код, и этот ответ обходят молчанием более важный вопрос: «Ну ладно, а что, если код между строками 1 и 2 попробует считать значение объекта?»

Читать далее
Всего голосов 23: ↑21 и ↓2+28
Комментарии106

Практическое руководство по именованию классов, функций и переменных

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

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

Читать далее
Всего голосов 31: ↑26 и ↓5+27
Комментарии41

Как правильно использовать переменные в препроцессорах LESS и SASS

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

Правила управления переменными в препроцессорах и методика переопределения настроек


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


Предыстория


В 2014 году в компании начали редизайн проекта и в основу вёрстки мы положили свежий на тот момент Bootstrap 3.0.1. Использовали мы его не как отдельную стороннюю библиотеку, а тесно заинтегрировали с нашим собственным кодом: отредактировали переменные под наш дизайн и компилировали кастомизированный Бутстрап из LESS исходников самостоятельно. Проект оброс собственными модулями, которые использовали бутстраповские переменные и добавляли в файл с настройками свои новые переменные.


В тот момент я думал, что это правильный подход.

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

Переменные CSS — курс молодого бойца

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

Переменные CSS (также известные как настраиваемые свойства) поддерживаются браузерами почти 4 года. Мне нравится применять их в зависимости от проекта или ситуации. Они очень полезны и просты в использовании, но зачастую фронтенд разработчик неправильно использует или неправильно понимает их.

Основная цель статьи: я хочу иметь место, где собрано все, что я знаю о переменных CSS, чтобы узнать и понять больше. Здесь вы прочитаете обо всем, что должны знать о переменных CSS, включая примеры применения в коде. Вы готовы? Тогда погружаемся.
Приятного чтения!
Всего голосов 28: ↑26 и ↓2+31
Комментарии9

Стиль кода, краткость и конкурентные преимущества

Время на прочтение7 мин
Количество просмотров9.5K
На новой работе (С++) пришлось сменить привычный стиль кода, открывающие угловые скобки { надо было ставить на той же строке, что и начало блоков if/for etc. Поначалу было неприятно отказываться от старых привычек, но за неделю новый подход мне понравился. Тогда подумал — а вдруг существуют и другие аспекты стиля, которые надо изменить несмотря на то, что они пока еще кажутся непривычными? И несмотря на то, что большинство программистов по инерции их не использует. Оказалось, что так и есть. За пару месяцев я сильно переработал стиль, результаты ниже.

Важное замечание
На изменение каждого аспекта стиля лучше давать не меньше недели на привыкание. Мозгу легче переучиваться, если изменения небольшие, легко находить аналогии со старым кодом. А если применить сразу все изменения, то код выйдет настолько непривычным, что мозг перегрузится и возникнет отвращение от слишком резкой смены.
Читать дальше →
Всего голосов 50: ↑18 и ↓32-14
Комментарии151

Поменять a и b без c

Время на прочтение1 мин
Количество просмотров774
К слову о интересных решениях.
Помнится когда-то давно я был неучем и не догадался как, не используя при этом третью переменную, сделать чтобы a получило значение b, а b — значение a.
a=a+b
b=a-b
a=a-b
А вы знали, как это сделать?
Всего голосов 18: ↑11 и ↓7+4
Комментарии28

Java Core для самых маленьких. Часть 3. Переменные

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

В этой статье мы говорим о переменных и связанных с ними темами!

Научимся создавать переменные и константы.
Узнаем что такое инициализация переменных.
Поговорим о литералах.
Выполним преобразование и приведение типов данных

Читать далее
Всего голосов 9: ↑3 и ↓6-3
Комментарии15

unset() и Буратино

Время на прочтение1 мин
Количество просмотров4.2K
Буратино дали три яблока. Два он съел. Сколько яблок осталось у Буратино? Думаете одно? Ничего подобного. Никто не знает сколько у него уже было яблок до этого. Мораль — всегда обнуляйте переменные!

Можно это было добавить в «Юмор», но когда с это встречается в работе — бывает очень даже не смешно. В этом блоге наверное все хоть раз прочувствовали на себе.
Всего голосов 112: ↑93 и ↓19+74
Комментарии112

10 приемов, разрушающих хрупкую красоту кода

Время на прочтение19 мин
Количество просмотров102K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →
Всего голосов 402: ↑324 и ↓78+246
Комментарии411

Упущенные из виду факты о переменных и объектах в Python: все дело в указателях

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

В Python переменные и структуры данных не содержат объектов. Этот факт часто упускается из виду, и его трудно уяснить.

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

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии4

За что я «люблю» PHP или переназначение переменных)

Время на прочтение1 мин
Количество просмотров1.9K
  1. if(is_numeric($email) && !empty($email)){
  2.     $email = $this->query("SELECT email FROM users WHERE id=".$email);
  3.     if($email && mysql_num_rows($email)>0){
  4.         $email = mysql_fetch_row($email);
  5.     $email = $email[0];
  6.     }
  7. }
Всего голосов 67: ↑36 и ↓31+5
Комментарии54

Кое-что о переменных MS Small Basic. И не только…

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

MS Small Basic в настоящее время является лучшим учебным текстовым языком программирования. Не самым популярным, а именно лучшим. А с появлением современной среды программирования SB-Prime, библиотеки LitDev и ряда других библиотек он получил великолепные возможности, позволяющие писать на нём сложные, полезные и интересные программы, которые можно использовать не только в учебных проектах, но и для решения вполне серьёзных повседневных задач, однако, ему присущ ряд недостатков, делающих его непригодным для создания действительно серьёзных, а главное - ответственных проектов, что довольно обидно.

Переменные в MS Small Basic не требуют объявления. Здорово? На первый взгляд — очень! Ничего не нужно заранее продумывать, даже следить, чтобы переменная получила значение до её использования — всё равно получит что-то типа нуля. При этом переменные как бы сами «решают», какого они типа — в зависимости от того, что в них записано. Это кажется очень удобным, особенно — для учебного языка программирования. Но если копнуть чуть глубже, мы увидим, что далеко не всё так здорово, как кажется на первый взгляд.

Как можно реализовать такие простые и умные переменные? Реализовать их можно либо созданием специального класса, который сам определяет тип передаваемых данных, хранит их в одной из подходящих внутренних переменных, выполняет проверки на корректность и преобразования данных в случае необходимости, либо… Либо так, как придумали в Microsoft.

Разработчики MS Small Basic решили проблему создания неких «универсальных» переменных, подходящих для хранения любых типов данных очень специфическим (зато простым и быстрым) способом. Начать с того, что переменные в MS Small Basic все(!) — действительно одного единственного типа: и числовые, и символьные, и текстовые, и даже массивы(!). Фантастика? Нет. Решение, найденное разработчиками, конечно в принципе имеет право на существование, но оно довольно примитивно и несёт с собой кучу неудобств при работе. Я бы даже сказал, разработчики поленились сильно напрягаться — они просто придумали хранить любые переменные как… (барабанная дробь!) …текстовые строки! Настоящие программисты, я думаю, в шоке, как от простоты идеи, так и от потенциального количества проблем, которые она за собой тащит. Ну и от ленивости разработчиков, я полагаю, тоже… :)

Читать далее
Всего голосов 8: ↑4 и ↓4+3
Комментарии14

Массивный BASH

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

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

бомбить
Всего голосов 21: ↑20 и ↓1+25
Комментарии53

Введение в нечёткую логику

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

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

Создавая такой алгоритм, вы заметите, что просто замусориваете ваш код логикой if-else (пока он не превратится в кашу), а самим вам начинает казаться, что вот так просто не прокатит.

Итак, если только вас не пробирает дрожь от математики – читайте дальше. Здесь в дело вступает нечёткая логика! Немного контекста: слово «нечёткий» (англ. «fuzzy») в данном случае означает «труднопонимаемый» — таков может быть, например, код вашего коллеги.

В этом посте я постараюсь объяснить нечёткую логику и объяснить, как она работает.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+21
Комментарии20

Логистическая регрессия: подробный обзор

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


Рисунок 1. Модель логистической регрессии. Источник.


Логистическая регрессия использовалась в области биологических исследований ещё в начале двадцатого века. Затем её стали применять во многих общественных науках. Логистическая регрессия применима, когда зависимая переменная (целевое значение) является категориальной. Подробности в иллюстрациях — в материале, а практика — на нашем курсе, посвящённом Data Science.

Читать дальше →
Всего голосов 5: ↑3 и ↓2+2
Комментарии4

Gangnam Style сломал переменную количества просмотров

Время на прочтение1 мин
Количество просмотров30K
Gangnam Style — это сингл южнокорейского музыканта Psy. Клип начал набирать миллионы просмотров сразу после выхода. Уже 21 декабря 2012 года видеоролик первым в истории набрал 1 миллиард просмотров.

Здесь этот медиафеномен можно было бы оставить в покое, если бы не маленький факт того, что недавно Gangnam Style вскрыл недостатки видеохостинга. Оказалось, что количество просмотров хранится в 32-битной целой переменной, и счётчик остановился на 2 147 483 647. Об этом разработчики сообщили в официальном аккаунте YouTube.

Видеосервис удачно обратил дефект в пасхалку: если на странице видео навести курсор на счётчик, то будет показана иллюстрация целочисленного переполнения.
Всего голосов 80: ↑71 и ↓9+62
Комментарии41

Изучаем переменные в CSS на практическом примере

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


Доброго времени суток, друзья!

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

«Замечательность» его (то бишь кода) состоит в практическом использовании переменных в CSS, что сильно облегчает написание стилей (использование переменных также обуславливает необычную структуру CSS). И, конечно, тема импонирует весьма — планеты Солнечной системы.

Оригинальный проект написан на Pug и Sass, мы же разберем его на HTML/CSS.

Итак, поехали.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Планируемые новшества в CSS

Время на прочтение2 мин
Количество просмотров2.8K
Tab Atkins, член рабочей группы CSS и команды Google Chrome, опубликовал слайды презентации, которую он проводил в прошлую среду.

Эта презентация демонстрирует четыре относительно новых концепта
Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии128
1