Pull to refresh

Comments 91

UFO just landed and posted this here
Спасибо тебе добрый человек!
А ещё есть phpStorm от JetBrains. В связке с xDebug очень удобен: habrahabr.ru/post/209024/

Правда, не бесплатный. Но и стоит недорого за то удобство, что даёт. И подсвечивает переменные, которые с опечатками, объявлены, но не используются и т.п., т.е. это не тупо блокнот с подсветкой, а достаточно умный «компаньон» при разработке, который подмечает потенциальные косяки.
Все бы ни чего, но вот сделать remote debug php на не своем хостинге это практически не реально.
Завязывайте уже с shared хостингами.
Товарищи минусующие, может объясните чем NetBeans лучше Sublime Text в контексте скриптовых языков?
Я не из них, но подозреваю, что дело в том, что NetBeans это IDE, а Sublime — текстовый редактор
Sublime Text может все тоже, что и NetBeans, при этом значительно проворнее, и не требует Java (для многих, включая автора статьи, это не маловажный фактор).
Хм, может я многого о Sublime не знаю. Он умеет рефакторить код по проекту, работать с системами контроля версий, заливать код на удаленный сервер?
По сравнению с IDE он ничего не умеет. Можно конечно потратить время, настроить много плагинов. Но полноценного качественного анализа кода и использования результатов оного для дополнения кода, рефакторинга и т.п. вещей настроить не получится. А при работе с большими проектами, без этого жить очень сложно.
С точки зрения пользователя:
— меняющийся фон в шапке — жесть, отвлекает и раздражает (хотя, имхо);
— в меню не хватает пункта «О нас» — кто такие? где находитесь? как звонить?
В качестве первого блина — не ком, вполне себе блин, слегка недожаренный :)
Очень интересно, а какую версию IE вы использовали для тестирования? *без сарказма*
IE8. Он не поддерживает SVG — и это тоже плюс, так как сайт выводится с fallback картинками и видно где каких картинок не хватает.
Было бы интересно прочитать обратный опыт:

Невероятно, но факт — веб-технолога унёс дракон! Кресты глазами глазами веб-технолога.
Я прошел данный путь))) 4 года пыха, сейчас плюсы и шарп — в пых не хочу возвращаться, но халтуры беру охотно.
ходил туда и обратно)
везде интересно)
Подтверждаю, Oauth2 — это ад.
Кто-то отдает токены через GET, кто-то через POST. Кто-то поддерживает CSRF, кто-то игнорирует, кто-то неприемлет.
Кто-то придумывает свои хэши для параметров (привет, одноклассники и mailru, которые требуют подписи всех запросов к апи).
Кому-то надо говорить, что окошко авторизации — попап, кому-то ни в коем случае нельзя.
Ну и наконец, кто-то возвращяет данные в json, а кто-то просто как ключ=значение.
Ага. Я в свое время прикручивал к одному проекту авторизацию OAUTH. Заодно решил сделать простой инструмент для Perl, т.к. на тот момент не нашел альтернативы, которая бы позволила ее использовать с уверенностью. В итоге пришел к выводу, что если и делать такой модуль, то он должен быть не конечным инструментом, который делает все за владельца, а очень гибким. Т.е. позволять кастомизировать все общение под дебилизм OAuth сервера. Так появился metacpan.org/release/OAuth-Simple ((:
Да, я чувствую вашу боль, сам делал для google (oauth2), linkedin (oauth1 и oauth2), twitter (oauth1), facebook (oauth2), xing (oauth1). Каждый, с*ка придумавает что-то свое.
Добавлю пару слов по дизайну и не только:

  • text-align: justify; — бяка
  • картинки в шапке плохого разрешения (на мониторе 1920*1080)
  • | Войти | Регистрация — вроде 2 кнопки, а на самом деле одна. Да и вертикальная черта перед «Войти» — лишняя.
  • top-me.org/adv_templates — не заставляйте скачивать ваши баннеры и писать src="/путь/до/банера/на/вашем/сервере.png", давайте адреса всех картинок которые уже загружены у вас, под каждым видом баннера выведите его код
  • Зачем вам старый бутстрап? Испольуйте 3ю версию — он круче! Если хотите объема, просто подключите bootstrap-theme.min.css, который есть в дистрибутиве
  • top-me.org/rating — на мой взгляд, модальные окна тут лишние, при таких конских плашках. На них, при минимальных усилиях, можно разместить всю нужную информацию и даже подсказки о типе обмена
  • На главной — onclick=«jQuery.slideshow.reset(3)» в карусели — дурной тон, делайте через $('.class-name').on('click', function(event) {… });
    + ваш способ будет проматывать страницу наверх из-за href="#", этого можно избежать через event.preventDefault()
    + id=«slideshow-radio-3» — плохой способ, лучше делать через data-frame-id=«10» (замените frame-id на то, что вам нравится). Получать значение лучше всего через это $(this).data() (http://api.jquery.com/data/#data-html5) внутри обработчика события
  • top-me.org/assets/js/login.min.js — писать кучу html-кода в js-файле — очень плохая идея :)

Извиняюсь, если не на все проблемы привел варианты решения, — у меня лень :(
Спасибо за замечания!

В виду своего малого опыта не знаю как исправить следующее:

> top-me.org/assets/js/login.min.js — писать кучу html-кода в js-файле — очень плохая идея :)

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

> Зачем вам старый бутстрап? Испольуйте 3ю версию — он круче! Если хотите объема, просто подключите bootstrap-theme.min.css, который есть в дистрибутиве

Тут проблема в переносимости. Просто заменить старый на новый не получается, все ползет. Согласно этой статье и официальной документации, необходимо всё аккуратно менять ручками. Я попробовал, всё поползло и я решил не делать, так как не видел на тот момент преимуществ в новом Bootstrap по сравнению со старым. Возможно есть некий автоматический способ?

По первому вопросу — попробуйте mustache, его можно подгружать через ajax github.com/janl/mustache.js#load-external-templates. Я не берусь утверждать, что это лучший способ, уже пару лет практически не использую jQuery — сижу на AngularJS. Раньше вроде была популярная штука для этих целей. Надеюсь кто-то посоветует более модный способ (если он есть, конечно)

По второму — лично я все правил ручками в свое время, но автоматические способы уже точно есть, вроде даже на сайте бутстрапа были ссылки, но могу ошибаться. Гугл вам в помощь. Лучше сделать это сейчас, чем жалеть потом, когда сайт разрастется :)
Можно ещё препроцессоры типа Jade использовать и инклюдить повторяющиеся куски разметки. Правда это не спасает от избыточности кода на продакшене.
Мне больше хромовский инспектор кода нравится, там сразу можно подогать нужный стиль в рантайме, потом уже поправить в самом файле стиля
Вместо работы индивидуально с каждым провайдером OAuth давно можно взять агрегатора — uLogin например.
О MySQL вообще полная фигня написана, уж извините.
Да, в jQuery нет работы со строками — но если вы возьмете что-то типа underscore.string то там будет такого добра просто завались.
О Bootstrap-е — если бы взяли нормальную полную тему, там виджетов и контролов столько, что и за месяц не разгребсти, например — metronic или любую другу. В том числе и меню. И сразу типовые страницы сверстаны, к примеру.
> давно можно взять агрегатора — uLogin например

Не знал о них, находил других агрегаторов. У всех были недостатки, в виде рекламы, засунутой в самые неприятные места. Да и uLogin наверное такой же:
Компания имеет право на свое усмотрение размещать любую информацию рекламного характера в состав Данных, которые предоставляются и отображаются Продуктами.


> если бы взяли нормальную полную тему

Если знать об этих темах — проблем нет. Тут все равно что веб разработчику скажут написать сервер на C++: человек напишет, но наверняка наделает собственных велосипедов, не зная что в Qt, Boost, HPX есть готовые решения. Если буду делать еще сайт — обязательно возьму metronic, спасибо за наводку!
Если не хочется агрегаторов, стоит поискать библиотеки для конкретных провайдеров. Про PHP не скажу, а в мире Ruby on Rails это библиотека OmniAuth и к ней уже есть плагины для всех провайдеров, которые скрывают всякие жуткие особенности и возвращают данные в более менее одинаковом виде. Искать по omniauth-провайдер, например omniauth-facebook, omniauth-google-oauth2 ну и даже omniauth-mailru. Я брал, подключал их за день (полдня из которых регистрировал приложения в соцсетях) и не знал бед. Логика обработки приходящих данных в приложении была почти одинаковой для всех.
Про чистый РНР не знаю, но для symfony2 (ИМХО идеальный framework для тех, кто пришёл с java или собирается на неё уходить) есть вот эта замечательная вещь — github.com/hwi/HWIOAuthBundle.
При экране меньше 767px у вас появляется горизонтальная прокрутка из-за этого куска css в файле assets/css/coming-soon-style.min.css:

@media (max-width: 767px) {
  body {
    padding-left: 0; 
    padding-right: 0; 
  }
}
Вы не представляете, сколько времени я искал этот баг! Я уж даже думал в Bootstrap поменять padding в паре мест, чтобы не было горизонтальной прокрутки. Огромное спасибо, теперь уже скоро исправлю!
А тут — top-me.org/rating — из-за
 .rating_table_row_info {
white-space: nowrap;
}


PS. Зачем оно вам кстати? Ничего плохого не случится, если плашки будут немного разной высоты из-за количества строк.
Хотелось именно однообразия, чтобы объявления различались лишь картинкой+текстом и позицией в рейтинге.

Если дизайн плашек одинаковый, то позиция в рейтинге становится более ценной — меньше других способов выделиться.
Ограничьте количество символов, которые можно указывать в описании. В таком виде как у вас сейчас — выводить их одной строкой не выйдет — оно не влезет никак. Пусть будет несколько строк — на больших экранах текст расползется на 2 строки, на маленьких — на 3-4. Все будут в равных условиях.

Вижу, вы добавили overflow: hidden. В качестве относительно грязного хака, если хотите ограничиться использованием только css, добавьте:

.rating_table_row_info p {
  text-overflow: ellipsis;
  overflow: hidden;
}

(overflow для .rating_table_row_info можно убрать)

Ой, только сейчас заметил таблицы в плашках! Так не надо делать :) Используйте .row-fluid
Из статьи стало понятно, что конфигурация PHP по умолчанию опасна! После чего на настройку PHP ушел день… а через месяц ещё два дня. Твёрдой уверенности в том, что все хорошо, нет до сих пор!
А что именно поменяли? На какие данные, статьи опирались по этому поводу?
Всё не упомню. На вскидку это:
* выставил open_basedir
* добавил функций в disable_functions (искал по всему интернету, собрал список из нескольких статей)
* урезал права сокету, по которому общаются nginx и php
* новый пользователь и группа для php — дабы чётко разграничить права доступа к фалам для php и nginx
* настройки file uploads

С file uploads отдельная проблема, которая вроде как легко не решается — сначала файл загружается на сервер, а уже после этого выполняется php. То есть нет возможности отменить загрузку файла. Решал настройками nginx, получилось не особо. Может знаете способ лучше?
Статья про веб от программиста на сях, и без всякой ненависти в сторону PHP… Удивительные вещи происходят!

На мой субъективный взгляд, пользоваться трейсом (print_r, var_dump) в PHP выходило более продуктивней что ли. Всегда под рукой все переменные окружения, локальные и глобальные массивы, вывод вёрстки. Или я таки не умею правильно готовить дебаггер…
Отладка клиентсайда, лучший выбор — божественный Firebug под Firefox, под него же есть и отладочные модули серверного кода — FirePHP.

И да, я понимаю, что руки до фреймворков у вас вряд ли дойдут, но они скрывают в себе огромную уйму полезного, в том числе и коннекторы к социалочкам.
Посмотрел на дизигн, с улыбкой заметил все те же недостатки, которые у самого бывают. Все же надо быть немножко дизайнером, чтобы делать что-то красиво. (Сам на C++ тоже пишу.)
А теперь минусоприемник активирован: веб — один большой костыль, попытка реализовать с помощью языка разметки то, для чего должен использоваться полноценный язык программирования. Да, цветной текст на HTML — это хорошо, но попытка сваять полноценное приложение на языке разметки неминуемо ведет к использованию костылей типа JavaScript и CSS, вот тут то клоунада и начинается. Одна надежда на NaCl, но что-то не верится, что он приживется, слишком много нынче веб-программистов, прости Г-споди.
Все, у кого мнение отличается от вашего - тролли?


Я высказал то что на самом деле думаю.
Видимо до мысли «задачеориентированного» программирования вы не додумались пока? Вступление в холивар и разбор вашего крайне спорного утверждение по косточкам — есть тлен и не ведет к уменьшению энтропии.
UFO just landed and posted this here
Тут ответ можно в целый пост развернуть. Если кратко — «да, вы правы». Нужно решить задачу. Это есть краеугольный камень жизнедеятельности разработчика или айтишника в целом. Ведь кормит меня не технология, а решенные с её помощью задачи. Столяра не кормит молоток, его кормит проданный стул, художника не кормит кисть — его кормит проданная картина. Надеюсь аналогия и мысль понятны в сумбурности моего изложения.
Во-первых, вас никто не просил ничего расписывать.
Во-вторых, HTML был ориентирован на разноцветный текст, а костыли, которые пытаются к нему прикрутить, вместо того чтобы разработать нормальные инструменты — остаются костылями.
Я правильно понял, что весь веб с его огромной кучей технологий, вы свели к одному HTML? Ну что же, похвально.
Которые являются костылями, призванными добавить к HTML возможности, для которых он никогда не был предназначен. Похвально (с)
UFO just landed and posted this here
Яндекс единственный кто делает редиректы при OAuth

Не упущу возможности поворчать на API Яндекс.Диска — для скачивания файла требуется до 3-х запросов!
UFO just landed and posted this here
VCL под веб — это реально?
Много попыток реализации, но что я видел это «поделки».
В Delphi, VS это работает. Помогает избежать написания фундаментального кода.
> Хотелось по наведени на меню выпадающего подменю. В Bootstrap не оказалось нужного функционала…
Не уверен, что вы хорошо искали, в Bootstrap есть данный функционал
А вариант на C++ писать не рассматривали?
Первое предложение под картинкой с молотком говорит нам, что такой вариант рассматривался, но недолго
*так, ворчание старичка*
Несколько лет назад, когда мир web-программирования еще не сформировался, а был лишь миром HTML, простого дизайна, фреймов, когда Flash был от Macromedia, а в мире серверов Code Red ещё не пошатнул позиции IIS, один студент подходил ко мне с вопросом, можно ли написать сайт на C++. И долго втирал мне про «самосервящиеся» сайты, термин его, но в душу запал. Позволю себе цитатку: «Ну смотрите, это когда сайт сам себе сервер, всё на плюсах, многопоточность для эффективного использования обоих процессоров сервера, самому управлять памятью, ресурсами, можно даже сетевым стеком. Ну это как самораспаковывающийся архив, только сервер и сайт в одном». Чем закончилась эта идея, я не в теме. Видел лишь его пробный самосервящийся Hello World, запущенный на одолженном у меня сервере под двумя Pentium II 450 Mhz. Сколько пользователей эта хрень держала и сколько памяти потребляла, история не сохранила. А вот зачин сей до сих пор вспоминается.
Возможно что вы говорите о чем-то наподобие Wt.

Лет пять назад я пытался написать на нем что-то ради развлечения, даже коммитил оптимизации в сам проект. Из минусов — это жутко медленная скорость разработки приложения + неприятности с дизайном (так получалось что дизайн у меня очень сильно вшивался в С++ код). Плюсы: привычный язык разработки и быстрая обработка сложных вещей. Однако если у вас сайт с базой данных и обращается по сети во вне — то второй плюс сходит на нет.
Попробуйте в следующий раз на Node.js писать — очень интересно почитать будет что-нибудь в таком же ключе :)
Имхо, в статье больше про верстку.
Честно говоря, ожидал увидеть больше про «php глазами C++'ника».
Что ж, смотрите

Или вот такой вариант еще:

Напомнило… «С этой командой хипстеров вы не отмасштабируетесь, возьмите пару жиробасов знающих Си!» (цэ) откуда то из недр твиттера =)
Что вы хотите, весь веб про вёрстку, так как сама логика вебприложений как правило тривиальная — получить данные из базы и переуложить или наоборот принять от клиента и отправить. Принимая во внимание, что современная разработка представляет из себя компоновку огромного количества готового кода или вовсе вписывание своей логики в какой-то scaffold, я думаю стоит ввести термин «верстальщик на php» или «верстальщик на python-е»
А вот как раз C++ разработчика ничем испугать особо нельзя. Это всякие любители Haskell'я, Java, и Ruby охреневают от того, как такое можно было создать, а для программиста на C++ в нём ничего страшного нету.

Если вы плотно работали на нормальных языках, исповедующим принцип fail fast — вот тогда вас от PHP будет мутить. Потому что только зная как устроены нормальные, не норовящие всё время выстрелить тебе в ногу, языки можно понять насколько ужасен PHP. Если же у вас опыт только C++ — то вам все эти жалобы будут просто непонятны.

Ну да, в C++ есть компилятор, который простые синтаксические ошибки отлавливает сходу — но и всё, собственно. Если ваша ошибка чуть банальнее, чем описка в написании имени переменной, то часы и дни отладки вам обеспечены. В PHP — та же фигня, ну так и что? Ну да, чуть похуже язычок, чем C++, но и только. Зато экономится время на компиляцию (которой нет), так что не всё так плохо!
Много программ на Хаскеле? (Факториалы за программы не считаются.)
Нет уж, вы не перекладывайте мой вопрос на меня же. Назовите хотя бы несколько с приличным количеством пользователей (GHC и IDE для хаскеля, написанная на хаскеле, забыл как называется, не в счет).
если я не ошибаюсь у МТС система USSD запросов на хаскелле (у кого то точно из большой тройки), это с приличным количеством пользователей?
Ладно, чтобы не продолжать оффтоп, соглашусь, что 1 — это много.
Нет, я знаю многие проекты которые используют, там где это актуально и надо. На эрланге тоже сразу сходу я не могу назвать много проектов кроме erlyvideo. Однако то что на нем строят дофига, помоему глупо отрицать. Haskell присутствует и в хайлоад проектах и в высокочастотном трейдинге и еще много где. Смысл отрицать очевидно? реже ли он используется чем OCaml? или Lisp? я бы еще сравнил!
Да я понял уже, что примеров нет, но язык все равно очень популярный.
Картинка фона на ретине выглядит плохо

640x483 размеры картинки никуда не годятся
Ну хоть свой фреймворк на C++ не стали писать, и на том спасибо :)
А хорошо написано ведь, весело и информативно.
Честное слово, первый раз в жизни захотелось на PHP поближе взглянуть.
Я смотрю на хабре достаточно много C++ программистов пишущих для веба.
C++11 уже позволяет создать полноценный web фреймворк, но задача эта для одного человека неподъемная. Было бы хорошо как-то организоваться и сделать такую вещь.
Лично у меня, когда мне приходится писать один и тот же код на C++ и PHP, то на C++ получается писать быстрее, код получается более организованным и сопровождать С++ код легче (при том что на php я пишу с 2006-го года). Про скорость исполнения я вообще молчу. Это не укор в сторону PHP. У PHP есть свои плюсы и минусы.
Пока рефлексию не завезут, все останется на уровне метакомпиляторных костылей, либо еще более ужасных костылей с шаблонами, а значит и дергаться не стоит. Выйдет очередной CppCMS, вот и все. Хотя, конечно, рефлексия в том гипертрофированном виде, как она есть в том же Java Spring, это еще хуже, но все же совсем без нее никак, увы.
Не понимаю зачем нужна рефлексия для web-фреймворка? Вообще ни разу не сталкивался с задачами, в которых нельзя было бы обойтись без рефлексии. Поясните пожалуйста.
Полноценный сайт — это не только статичный контент, но еще и работа с базой, и вот тут без рефлексии начинается клоунада с шаблонами, в результате все равно получается неудобно и криво. Хотя, согласен, выразился я не очень точно, должен был уточнить.
Клоунада с шаблонами начинается если вы начинаете микроскопом гвозди забивать. Зачем вам SQL? Если у вас сайт на C++, то вы можете запросто сложить все данные в DBD или Redis какой-нибудь.

Да, это совсем не то, к чему привыкли web-разработчики, ну и что? Заменять PHP или C#/Java на C++ оставив всё вокруг в неизменности действительно глупо — у этих языков совсем разные подходу к «устройству мира».
Нормальные пацаны (Falcon) так и сделали! =)

А для переходя придумали Зефир!
Про Falcon я знаю. Это вообще не то. Я говорил про C++.
Если честно, то мне как C++ программисту гораздо приятнее иметь дело с PHP-CPP чем с Falcon — не люблю дебажить код на С.
Моё знакомство с MySQL всегда довольно быстро заканчивалось полным сносом MySQL

Как-то не так вы знакомились
Согласен с тем, что MySQL не идеален, но намного менее прожорлив постгреста
И для вашего проекта MySQL был бы более правильным выбором
Ну под спойлер я вынес это не просто так — это моё субъективное мнение. Но в принципе моё мнение совпадает с выводами из статьи «PostgreSQL vs MySQL». Использование оперативной памяти в PostgreSQL регулируется через конфиги, так что тут различия можно свести к минимуму. В итоге при прочих равных, остаются те факторы, что под спойлером.
> Из статьи стало понятно, что конфигурация PHP по умолчанию опасна!

Я просчитал указанную вами статью и ничего такого про опасность стандартной конфигурации PHP не нашел. В статье описана история взлома, которая началась с эксплуатации известной уязвимости старой версии форума phpBB. Не было бы устаревшего phpBB, не было бы и истории. Настройки интерпретатора PHP здесь ни при чем.
Понравилось как вы футер спустили вниз:
.margin-75px {
    margin-top: 50px;
}


В целом, статья отличная с долей комедии, текст под заголовком «Первое разочарование» очень порадовал :)
Конечно, имея доступ к веб-программисту, который бы Вас консультировал, Вы сэкономили бы много времени и нервных клеток. Неправильные решения создавали дополнительные проблемы. Кстати, я из статьи не понял, вы использовали jquery.cookie или нет?
Понравилось как вы футер спустили вниз:
.margin-75px {
    margin-top: 50px;
}


В целом, статья отличная с долей комедии


Походу часть комедии просочилась в CSS :)

jquery.cookie не использовал (не знал о нем), написал свой простенький велосипед по ответам со Stack Overflow
Для jquery полно плагинов, которые делают вещи для всего, разве что кофе не варят )))
Хорошим тоном для слайдеров считается автоматически не переключать слайд если курсор находится поверх слайдера. Особенно это касается слайдеров в которых есть текст внутри. Замучился жать стрелку назад, перечитывая один слайд и пытаясь понять «о чем вообще этот сайт». А что если я просто хочу посмотреть на картинку в слайдере? Не поверхностно просмотреть, а вот именно изучить ее, такая-же ерунда.
В моём случае переход от С++ к веб технологиям заключился в поддержке блога на WordPress и форума на PhpBB. Когда же потребовалось за месяц освоить веб с нуля, то я был деморализован, и в общем то с задачей не справился.
Sign up to leave a comment.

Articles

Change theme settings