- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
вы бы лучше поспорили зачем $(elem) два раза готовый объект совать в $()
или зачем создавать отдельную переменную colvo ради единственной операции в val()
ух блин погромисты
вот поэтому, ТС, не надо учить пхп
учите то, что даст представление о логике происходящего в программе
ся учите для начала
ну или, ладно, жабускрипт хотя бы если хотите с места в карьер пойти на заработки
вы бы лучше поспорили зачем $(elem)
Нет, ну относительно того, что это писал неопытный программист, A007MP прав - об этом свидетельствует дублирование объявления переменной через var, хотя бы. И бездумное применение шаблонных конструкций тоже. Но сама по себе эта шаблонная конструкция верна.
Зря.
Вы потратили время - свое напрямую (занимаясь оптимизацией), чужое косвенно (на отслеживание коммитов), Вы не знаете к каким последствиям это может привести (т.к. не знаете причин почему это было написано именно так и как следствие к чему Ваши изменения могли привести), Вы не получили заметного эффекта (замена -1+2 на ++ это не фига не оптимизация).
Ваши действия не только не позитивны, они негативны.
С этим соглашусь. Если у нас colvo пришло в виде строки, то colvo++ в первой итерации приведет сначала к числу и инкремента не произойдет. Если сделать colvo = colvo + 1; Мы можем получить конкатенацию. И только colvo = colvo - 1 + 2 сначала кастанет к числу, а затем инкрементирует изначальный счетчик. Но это песня про убогий дизайн JS.
Нет. Во-первых, полное отделение разметки от кода позволяет настолько абстрагироваться, что вся программа пишется с ходу, вообще не задумываясь, что, где и как должно отображаться. Во-вторых, сразу знаешь, в каких файлах что искать и менять, при смене дизайна.
Единственное, что я оставил (да и то - временно) пока в php - это ответ на ajax запрос - в файлах есть текстовые сообщения, которые выводятся пользователю. Но и это, на самом деле, делать нежелательно - все должно идти из базы. Таким образом проще будет сделать мультиязычную систему. А вот ответ на ajax запрос в виде части html (например для корзины) - тоже берется разметка из шаблона. Это позволяет менять дизайн только в одном месте, а не выискивать кучу мест, где это могло быть.
А ещё круче - использовать Clean Architecture подход, в котором приложение разделяется на 4 слоя:
Entities - бизнеслогика: сущности, методы и функции
Use Cases - логика приложения, взаимодействие entities между собой, управление потоком данных.
Interface Adapters - абстракции для доступа взаимодействия с внешним миром (MVC, MVVM или что-то другое)
Frameworks & Drivers - библиотеки внешнего мира, тут настраивается слой между адаптерами и библиотеками.
При таком подходе, любое изменение слоя затрагивает только один слой, и не более. Поменялась логика взаимодействия - сменили use cases, нашли роутер по производительнее , заменили frameworks & drivers.
Такой подход дает безболезненно заменить базу данных, шаблонизатор, роутер, веб-сервер и вообще что угодно.
вы бы лучше поспорили зачем $(elem) два раза готовый объект совать в $()
или зачем создавать отдельную переменную colvo ради единственной операции в val()
1) Не объект, а результат поиска так-то.
2) Что бы избежать монструозного кода. А то понапишут полпроекта в одну строку.
С этим соглашусь. Если у нас colvo пришло в виде строки, то colvo++ в первой итерации приведет сначала к числу и инкремента не произойдет. Если сделать colvo = colvo + 1; Мы можем получить конкатенацию. И только colvo = colvo - 1 + 2 сначала кастанет к числу, а затем инкрементирует изначальный счетчик. Но это песня про убогий дизайн JS.
В пхп, кстати, тоже такое есть.
$z='a';
$z++;
echo $z;
По логике - '1'. На самом деле - 'b'.
А ещё круче - использовать Clean Architecture подход, в котором приложение разделяется на 4 слоя:
Entities - бизнеслогика: сущности, методы и функции
Use Cases - логика приложения, взаимодействие entities между собой, управление потоком данных.
Interface Adapters - абстракции для доступа взаимодействия с внешним миром (MVC, MVVM или что-то другое)
Frameworks & Drivers - библиотеки внешнего мира, тут настраивается слой между адаптерами и библиотеками.
При таком подходе, любое изменение слоя затрагивает только один слой, и не более. Поменялась логика взаимодействия - сменили use cases, нашли роутер по производительнее , заменили frameworks & drivers.
Такой подход дает безболезненно заменить базу данных, шаблонизатор, роутер, веб-сервер и вообще что угодно.
Согласны.
Но все же - иногда нужны "грязные хаки". В большинстве случаев нет времени (по крайней мере оплаченного заказчиком) что бы сидеть и перфекционировать на архитектуру. Есть задача "я не знаю как но что бы к утру было сделано" и просьба "в разумные деньги" и простой выбор - грязный хак который займет полчаса и будет оплачен как час (с округлением) или красивое кошерное решение которое займет часов 6 и один черт больше одного часа не оплатят (т.к. "че там делать-то было"). Естественно, при наборе некоторой критической массы грязных хаков скопившихся примерно в одном месте есть смысл отрефакторить это дело, но опять же - на рефакторинг кучи грязных хаков чохом уйдет в разы меньше времени чем если не хакать, а делать всё кошерно изначально.
С этим соглашусь. Если у нас colvo пришло в виде строки, то colvo++ в первой итерации приведет сначала к числу и инкремента не произойдет.
Разве? В js это приведёт к NaN.
Это если в поле $(elem).find(".inp_num") хулиган ввёл буковки.
Да и colvo = colvo - 1 + 2 тоже даст NaN.
Согласны.
Но все же - иногда нужны "грязные хаки". В большинстве случаев нет времени (по крайней мере оплаченного заказчиком) что бы сидеть и перфекционировать на архитектуру. Есть задача "я не знаю как но что бы к утру было сделано" и просьба "в разумные деньги" и простой выбор - грязный хак который займет полчаса и будет оплачен как час (с округлением) или красивое кошерное решение которое займет часов 6 и один черт больше одного часа не оплатят (т.к. "че там делать-то было"). Естественно, при наборе некоторой критической массы грязных хаков скопившихся примерно в одном месте есть смысл отрефакторить это дело, но опять же - на рефакторинг кучи грязных хаков чохом уйдет в разы меньше времени чем если не хакать, а делать всё кошерно изначально.
Я меня был один проект, где заказчик подгонял меня и просил быстрее-быстрее, ставил мне сроки. Я писал код быстрей-быстрей, как он и просил. В итоге это вылилось в несколько месяцев разработки, и поддерживать это теперь будет сложно. Я сделал вывод для себя, кроме того, что не работать с заказчиками, которые подгоняют, никогда не забивать на проектирование, и сначала думать, потом писать. Если бы я посидел и почертил диаграмки пару недель, то в итоге, приложение было бы готово на месяц раньше, и было бы намного качественней адаптировано под всякие изменения.
Да и с тем, что отрефакторить - быстрее, не соглашусь. Отрефакторить изначально продуманный проект, согласен. Но если начать писать сразу и по быстрому, потом это проще переписать с нуля, чем начать что-то рефакторить. Да и в целом, я когда делаю рефакторинг - значаю покрываю тестами ту часть кода, которую рефакторю, а затем начинаю переписывать функцию/метод.
По логике - '1'. На самом деле - 'b'.
Странная логика, почему 1? Если 'a' - по ASCII в десятичной системе это 97, проинкрементировав (для этого привести к числу), вы получите 98, и конвертнув обратно число в строку, вы получите 'b'. Не знаю как PHP работает с последовательностью сивмолов, но в нормальных языках примерно так и работает - строка это иммутабельный поток int32 чисел (для последнего стандарта utf8, где на один символ может уходить 4 байта).
---------- Добавлено 30.06.2018 в 11:55 ----------
Разве? В js это приведёт к NaN.
Откройте консольку и посмотрите:
Откройте консольку и посмотрите:
Открыл жсфиддле и посмотрел:
var t = "a";
t++;
alert(t);
t-1+2;
alert(t);
VoV@, я чет сначала и не увидел, что вы про буковки писали. Даже если хулиган введет циферки в инпут, они все равно прилетят в виде строки. Мои примеры как раз и описывают это.
Я меня был один проект, где заказчик подгонял меня и просил быстрее-быстрее, ставил мне сроки. Я писал код быстрей-быстрей, как он и просил. В итоге это вылилось в несколько месяцев разработки, и поддерживать это теперь будет сложно. Я сделал вывод для себя, кроме того, что не работать с заказчиками, которые подгоняют, никогда не забивать на проектирование, и сначала думать, потом писать. Если бы я посидел и почертил диаграмки пару недель, то в итоге, приложение было бы готово на месяц раньше, и было бы намного качественней адаптировано под всякие изменения.
Не, тут Вы говорите о ситуации когда отказ от планирования привел к увеличению сроков разработки.
Мы безусловно согласны, что планирование надо всегда. Но говорим о том, что иногда следует применить грязный хак, если это будет оправдано целями проекта (сократит сроки разработки, сделает код быстрее и т.д.).
Более того, перефразируя известную истину - "грамотно сделанный хак ничем не отличается от фичи бай дизайн":) Если хак не вписывается в архитектуру, но не влияет на нее - это отличный, правильный хак.
Странная логика, почему 1? Если 'a' - по ASCII в десятичной системе это 97, проинкрементировав (для этого привести к числу), вы получите 98
'a' строковое. Приводя строку не являющуюся числом к числу в пхп - мы получаем 0. Приведя к числу 'a' получим 0, а не 97, можете проверить var_dump(intval('a')); При арифметической операции - должно сначала выполнится приведение и дать ноль, потом к нему должно прибавиться 1 и дать 1. Но нет, будет 'b'.
, и конвертнув обратно число в строку, вы получите 'b'. Не знаю как PHP работает с последовательностью сивмолов, но в нормальных языках примерно так и работает - строка это иммутабельный поток int32 чисел (для последнего стандарта utf8, где на один символ может уходить 4 байта).
Как можно вообще называть нормальным язык где нет строгой типизации? При которой ++ к строке просто выдаст ошибку компиляции?
Как Вам такое в пхп (научим ТС плохому)?
$z='z';
$z++;
echo $z;
выведет 'aa';
Что бы оставаться в топике - ноги бы поотрывать тем, кто пишет ++ к строкам и использует это в продакшене:)