Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Мой синхронный костыль (https://javascript.ru/forum/project/24115-mojj-sinkhronnyjj-kostyl.html)

x-yuri 23.12.2011 14:06

Цитата:

Сообщение от FINoM
Примеры я уже приводил, вот хотя-бы этот:

Цитата:

Сообщение от FINoM
Рассмотрим пример (который взят из головы и в нем возможны ошибки) гипотетического парсера сайта

думаю, комментарии излишни

Цитата:

Сообщение от FINoM
Это дело твоё, хочешь, напиши функции setState, getState, я ведь тебе не указ, как и ты мне.

использование одной функции вместо двух для геттеров/сеттеров - довольно распространенная практика

Цитата:

Сообщение от FINoM
Да, ты прав, я люблю, когда всё просто. Самые популярные вещи — просты в использовании, посмотри на ту же "быдло-библиотеку" jQuery.

ты хочешь славы и популярности? Миллионы леммингов не могут ошибаться? И почему ты ее ставишь в пример, если сам называешь быдло-библиотекой? jquery - это хорошо, для каких-то задач. Но для чего-то более сложного начинает не хватать объектов, и не только.

Цитата:

Сообщение от FINoM
А если усложнить, то, вполне возможно, придется переделывать.

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

Цитата:

Сообщение от FINoM
А если усложнить, то, вполне возможно, придется переделывать. Ты сам пишешь: "Хорошие библиотеки возникают из решения практических задач". что бы это не значило, нужно отталкиваться от практических задач.

это значит следующее: "Напиши несколько парсеров сайтов, о которых ты говоришь, а потом подумай, как лучше решить эту проблему".

FINoM 23.12.2011 14:26

Цитата:

Сообщение от x-yuri
думаю, комментарии излишни

Думаю да. И зачем ты жирным выделил, хотел что-то доказать? Типа ситуации такой не бывает или что?
Цитата:

Сообщение от x-yuri
использование одной функции вместо двух для геттеров/сеттеров - довольно распространенная практика

Не важно. Повторюсь, создаешь объект this.object и он будет действителен во всей цепи. Если это решение не нравится, форкни скрипт на jsfiddle и сделай по-своему, я никого не ограничиваю в этом.
Цитата:

Сообщение от x-yuri
ты хочешь славы и популярности?

Я хочу сделать удобный инструмент, которым будет удобно пользоваться, в первую очередь мне. Не ищи здесь сакрального смысла.
Цитата:

Сообщение от x-yuri
И почему ты ее ставишь в пример, если сам называешь быдло-библиотекой?

Пытаюсь найти с тобой общий язык. Ты любишь сложности, которыми jQuery похвастаться не может.
Цитата:

Сообщение от x-yuri
нет, это ты слишком упрощаешь.

Я не понимаю, какую задачу ты хочешь решить, вот и всё.
this.state('var', 5); // Программист: Состояние? Что за нахер? А если я хочу userState? Или varStack?
По крайней мере я бы задал эти вопросы и предпочел бы модифицировать this по-человечески, а не "тру".
Цитата:

Сообщение от x-yuri
"Напиши несколько парсеров сайтов, о которых ты говоришь, а потом подумай, как лучше решить эту проблему".

Я уже писал парсер сайта, причем, после парсинга, нужно было создать сервер, и вывести результаты на экран. Я знаю, о чем говорю.

x-yuri 23.12.2011 14:26

...
Цитата:

Сообщение от FINoM
Это дело твоё, хочешь, напиши функции setState, getState, я ведь тебе не указ, как и ты мне.

конечно не указ, я просто объясняю свою точку зрения

x-yuri 23.12.2011 14:40

Цитата:

Сообщение от FINoM
Думаю да. И зачем ты жирным выделил, хотел что-то доказать? Типа ситуации такой не бывает или что?

я хотел показать, что ты придумал эту ситуацию

Цитата:

Сообщение от x-yuri
ты хочешь славы и популярности?

Цитата:

Сообщение от FINoM
Я хочу сделать удобный инструмент, которым будет удобно пользоваться, в первую очередь мне. Не ищи здесь сакрального смысла.

это была одна из возможных причин, почему ты привел jquery в пример

Цитата:

Сообщение от FINoM
Ты любишь сложности, которыми jQuery похвастаться не может.

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

Цитата:

Сообщение от FINoM
this.state('var', 5); // Программист: Состояние? Что за нахер? А если я хочу userState? Или varStack?

ты всегда так придираешься к названиям API-методов? Соглашение про один метод используется даже в jquery

Цитата:

Сообщение от FINoM
По крайней мере я бы задал эти вопросы и предпочел бы модифицировать this по-человечески, а не "тру".

я ни разу не сказал, что мой путь - тру-путь. Я просто сравниваю свой вариант с твоим.

Цитата:

Сообщение от FINoM
Я уже писал парсер сайта, причем, после парсинга, нужно было создать сервер, и вывести результаты на экран. Я знаю, о чем говорю.

напиши еще два, говорят, хорошее решение приходит на третий раз ;) (шучу) Лучше выложи парсер, обсудим :)

FINoM 23.12.2011 15:01

Цитата:

Сообщение от x-yuri
я хотел показать, что ты придумал эту ситуацию

Ситуация с асинхронными вызовами не выдуманная и является самой известной проблемой при использовании ноды. "Псевдокод" который я привел, более чем понятен, на мой взгляд. Если всё-таки что-то не понятно, спрашивай, я объясню.
Цитата:

Сообщение от x-yuri
это была одна из возможных причин, почему ты привел jquery в пример

Хочу славы и популярности за 20 строк кода. Чего бы нет? А еще денег и баб.
Цитата:

Сообщение от x-yuri
Пытался найти какая строчка их вызывает?

Да. Просто скачивал неминимизированную версию и искал проблему.
Цитата:

Сообщение от x-yuri
Соглашение про один метод используется даже в jquery

Ты имеешь в виду .data()?
Цитата:

Сообщение от x-yuri
Лучше выложи парсер, обсудим

Это личное :)

x-yuri 23.12.2011 15:12

Цитата:

Сообщение от FINoM
Ситуация с асинхронными вызовами не выдуманная и является самой известной проблемой при использовании ноды. "Псевдокод" который я привел, более чем понятен, на мой взгляд. Если всё-таки что-то не понятно, спрашивай, я объясню.

я хотел показать, что ты придумал не проблему, а задачу, которая ее демонстрирует. Правда потом выяснилось, что все же она не выдуманная, как можно было бы подумать из твоих слов: "Рассмотрим пример (который взят из головы и в нем возможны ошибки) гипотетического парсера сайта "

Цитата:

Сообщение от FINoM
Да. Просто скачивал неминимизированную версию и искал проблему.

ну если тебе все устраивает, тогда будем ждать пока тебе надоест :)

Цитата:

Сообщение от FINoM
Ты имеешь в виду .data()?

attr, html, prop, text, val, width, height

FINoM 23.12.2011 15:22

Цитата:

Сообщение от x-yuri
тогда будем ждать пока тебе надоест

Надоест, не надоест, более половины заказов по Javascript требуют использование jQuery. Так что выбор таков: потерять кучу денег из-за проблем, случающихся 1 раз на несколько тысяч строк кода, либо не выёбываться и работать.
Забыл главное: jQuery используется на > 50% сайтов во всём мире.
Чисто из любопытства: какие есть альтернативы? Мутулз — те же яйца, прототайп — вырвиглазное говнище...
Цитата:

Сообщение от x-yuri
attr, html, prop, text, val, width, height

Эти функции семантичны. Из их названия сразу понятно, что они делают. А тут ситуация такая: хранить переменные, которые могут быть чем угодно (шириной, показателем мягкости, сочинением "как я провел лето").

Gozar 23.12.2011 15:30

Ой, а я только сейчас заметил, что у меня получился вариант ну почти один в один как:
Цитата:

Сообщение от x-yuri (Сообщение 145312)
альтернативный вариант

Нужно попить колы для улучшения внимания.

А лично моё мнение что FINoM усложняет реализацию. Я взялся за написание решение после того как попытался разложить твой FINoM скрипт и чуть голову не сломал.

Реализация мне нужна сейчас, я делаю сложную анимацию и такой объект очень пригодится.

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

Одна цепь - один объект, все переменные в одном месте - искать не нужно, даже отладка проще.

x-yuri 23.12.2011 16:10

Цитата:

Сообщение от FINoM
Надоест, не надоест, более половины заказов по Javascript требуют использование jQuery. Так что выбор таков: потерять кучу денег из-за проблем, случающихся 1 раз на несколько тысяч строк кода, либо не выёбываться и работать.

выбор таков: 1) подстраиваться под "более половины заказов по Javascript требуют использование jQuery", 2) действовать по правилу правой руки, 3) выбирать инструменты исходя из задачи. Твои слова похожи на оправдание "Почему я использую jquery".

Анекдот такой есть. Первую неделю после получки стипендии у студента в столовой действует правило правой руки: закрываются цены - выбираются блюда. Вторую неделю дествует правило левой руки: закрываются блюда - выбираются цены. Далее действует правило буравчика: покрутился-повертелся и ушел.

ты не думаешь, что знание javascript, которое не просто знание jquery, лучше оплачивается? Да и вообще условия лучше.

Цитата:

Сообщение от FINoM
Мутулз — те же яйца

ни разу, почитай статью, которую я привел. И код сравни. Есть еще rightjs, но это наверное совсем андерграунд. Зато похоже на продолжение jquery + mootools.

Цитата:

Сообщение от FINoM
Эти функции семантичны. Из их названия сразу понятно, что они делают. А тут ситуация такая: хранить переменные, которые могут быть чем угодно (шириной, показателем мягкости, сочинением "как я провел лето").

потому что они работают с более конкретными вещами. Следуя такой логике надо начать возмущаться названию оператора var.

Цитата:

Сообщение от Gozar
Ой, а я только сейчас заметил, что у меня получился вариант ну почти один в один как:

great minds think alike :)

FINoM 23.12.2011 17:29

Цитата:

Сообщение от x-yuri
ты не думаешь, что знание javascript, которое не просто знание jquery, лучше оплачивается?

В основном приходится работать с DOM и Ajax. Я понимаю, что это тема для холивара, но jQuery мне кажется очень и очень удобным. Кроме того, не редкость, когда получаю задачи по сайту, где уже используется jQuery. Другое дело, если ты работаешь фул тайм в чужой конторе, тогда возможности выбора инструментария более широки.
(казалось бы, фрилансер более поворотлив, но нет)
Цитата:

Сообщение от x-yuri
ни разу

Да, возможно, я ошибаюсь. Но мутулз сейчас используется редко, как и прототайп.
Цитата:

Сообщение от x-yuri
потому что они работают с более конкретными вещами.

Может ты и прав. Сделаю ни тебе ни мне:
Init.prototype.data = function(item,value) {
  if(value === undefined) {return this.data[item]}
  else {this.data[item] = value}
}
Примерно так. Хочешь, используешь функции, хочешь, просто пишешь this.data.x = 2;
Цитата:

А лично моё мнение что FINoM усложняет реализацию.
Я пытался вынести почти всё в прототипы для лучшей читабельности, но получилась фигня. Попробую еще.


Часовой пояс GMT +3, время: 01:00.