Pull to refresh
32
0
Александр Савин @asavin

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

Send message
О, спасибо, хороший ответ. Судя по тому, что написали здесь, а не дали ссылку — статьи, объясняющей все это, не было. Мне кажется, это как раз то, что интересно посетителям хабра, так что подумайте, может, стоит написать об этом (и/или на подобные темы) еще подробнее.

Без решения проблемы связки путей локальных файлов и путей в запросах мне использовать COLT в работе будет затруднительно, хоть и хочется.

Еще раз, я работаю в основном с:

1. Symfony2 — где сборщик файлов не только копирует файлы, но и переименовывает их по определенным правилам
2. bem-tools — где файлы объединяются в один, в качестве разделителя — пути к файлам внутри комментариев

Понимаю, что вы не будете подстраиваться под конкретного пользователя, но не могу не отметить, что решив эти проблемы, вы наверняка покроете львиную долю проблемных подключений статики на страницу.
А вы можете описать, как это работает?
Вот я изменил локально расположенный файл app/Resources/public/js/A/A.js
WebStorm его загрузил по ssh на dev-сервер
Запустился сборщик и скопировал его в web/js/require/A
Я открываю в браузере mysite.dev
Открывается страница, к ней скрипт подключен по пути /js/require/A/A.js
Как в этот процесс встраивается COLT, как анализирует скрипт, как сопоставляет с тем, что открыто в IDE?
Или есть какие-то статьи, на которые вы можете дать ссылки? Я бы с удовольствием почитал.
Еще в догонку:
работает ли это с requirejs?
как быть, если скрипты подключаются к странице, генерируемой сервером? Все плюшки по live-редактированию html сразу отпадут, как я понимаю? А работа с JS будет возможна?
Интересная штука. У меня есть такой вопрос: как это все будет работать с более сложными схемами подключения скриптов?
Например, пусть я работаю с Symfony2. Там есть специальный инструмент для подключения статики, в том числе скриптов. Работает он таким образом: я редактирую файлы скриптов в одной директории, а этот инструмент копирует измененные файлы в другую, опционально изменяя при этом. Например, объединяя в один или преобразуя CoffeeScript->JavaScript.
Или, например, я разрабатываю проект с помощью bem-tools. Тоже — редактирую файлы, разложенные по директориям блоков, в браузер подключается объединенный файл, собранный по зависимостям страницы.
Или, например, у меня grunt-таск при изменении файлов запускается и копирует их, преобразуя при этом как-то.
Ну, вы поняли суть.
Ммм, да, я почему-то прочитал его как «настроить свои IDE единообразно, согласно code style команды и пользоваться авто-форматированием». Удивляюсь теперь, как так вышло.
Неужели в вашей любомй IDE нет авто-форматирования кода?
У нас практически все файлы javascript «зеленые», другие просто code review не проходят:

И подсказки IDE вполне себе информативные — чтобы WebStorm было проще, пишите jsdoc ко всему. Это, кстати, поможет и вам, когда вернетесь к коду через месяц-другой.

Мне кажется, вполне можно сказать, что «большинство плохо написанных программ представляют собой код, завязанный разными непонятными узлами». Тут, я думаю, не в web-технологиях проблема.

Разбивайте код на модули, если совсем тяжело с асинхронностью — используйте «обещания», и не будет спагетти.

Ну и современные средства отладки javascript — это не alert, как когда-то, я бы не стал говорить о «невменяемой сложности».
Если open-source. то откуда слова про платный аккаунт? На github бесплатный хостинг проектов с открытым исходным кодом.
Смотрю на код executor, connector и этот код мне не нравится. Куча функций внутри функций. Вы понимаете, что все вложенные функции будут создаваться каждый раз при вызове функции, которая их содержит?
Я согласен с вашей позицией, более того, сам пользуюсь вашей модульной системой с момента релиза соответствующей версии bem-core.
Можете воспринимать мой комментарий как критику статьи: мне кажется, она была бы интереснее, если бы было проведено сравнение модульных систем по всем пунктам, указанным в репозитории YM, с разбором таких вот кейсов. А ля «смотрите, используя AMD, вы конечно можете переопределить модуль, но вам приходится писать конфиги и это плохо потому и потому, а у нас переопределение сделано вот так круто».
Вы про многое подумали, прежде чем писать YM, многое для вас очевидно благодаря опыту — а читатель ни о чем не думал и, может быть, вовсе не понимает ничего, пока ему не разжуешь.
В AMD есть возможность передекларации существующих модулей, для этого используется параметр map в конфигурационном файле. Да, я знаю, «тут есть нарушение принципов модульности, так как помимо самого модуля, мне еще что-то куда-то нужно дописывать.», но тем не менее.
Я анализ не делал, но на первый взгляд кажется, что можно было попробовать доработать AMD, добавив provide опциональным параметром. Не рассматривали такой вариант?
Внимательно слушать — не значит выполнять просьбы, не думая.
Не знаю, как в других IDE, а в PhpStorm не обязательно точно помнить, достаточно набрать, например msc, чтобы нашелся MySuperClass.php
Нет, клиент (из браузера) коннектится через веб-сокеты к каналу, открытому nginx. Приложение (бэк-энд) читает и пишет в канал, используя http запросы.
Хотите получить сообщение (сообщения) из канала — отправляете запрос.
Хотите отправить сообщение подписчикам — отправляете запрос.
Как именно отправить http-запрос из приложения — вам решать.
Где на пример взаимодействия с php посмотреть, не подскажу. Могу сказать, что взаимодействие сводится к http-запросам (например, записать что-то в канал = отправить запрос), но это, наверное, и так понятно.
Мы используем HttpPushStreamModule для работы с сокетами из пхп. Поддерживает, к слову, много чего, включая деградацию до long-pooling.
В какой-то момент понял, что выхожу из IDE от JetBrains практически исключительно в консоль, начал пользоваться встроенным в IDE терминалом.
Для такого динамического языка, как JavaScript, правильно реализовать автокомплит и анализ кода — не самая простая задача и тут конкурентов у JetBrains, мне кажется, нет.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity