Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Генератор бреда #3

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

VladimirShestakov
Copy link

Бред генерируется из двух источников на выбор.

http://rawgithub.com/VladimirShestakov/3-oop-js-dom/master/index.html

@VladimirShestakov
Copy link
Author

В отдельной ветке сделал генератор по всей html разметке, т.е. бред генерируется из всего что есть в исходнике статей - ссылки, списки и даже таблицы и всё остальное, коменты и имена юзеров не приходится обрабатывать отдельно - всё засовывается в одну цепочку с вложенностями =) Но не успеваю отрефакторить и, главное, доделать статистику, чтобы в итоге среднестатистическая статья генерировалась, бредовый бред выходит. Какие-то зависимости нужно учитывать - не просто посчитать кол-во абзацев, а как-то соотносить их с кол-вом заголовков и других элементов, чтобы они потом правильно чередовались.

Стоит ли её pull-реквестить? http://rawgithub.com/VladimirShestakov/3-oop-js-dom/full_markov/index.html

@azproduction
Copy link

Хорошо, что в статье попадаются куски кода. Код определенно нужно рефакторить и уходить от jQuery-плагин-стайла. Например вот такой:

+                quality: parseInt($form.find('[name="quality"]').val()),
+                words:{
+                    max: parseInt($form.find('[name="words[min]"]').val()),
+                    min: parseInt($form.find('[name="words[max]"]').val())
+                },
+                paragraphs:{
+                    max: parseInt($form.find('[name="paragraphs[min]"]').val()),
+                    min: parseInt($form.find('[name="paragraphs[max]"]').val())
+                },
+                sentences:{
+                    max: parseInt($form.find('[name="sentences[min]"]').val()),
+                    min: parseInt($form.find('[name="sentences[max]"]').val())
+                },
+                comments:{
+                    max: parseInt($form.find('[name="comments[min]"]').val()),
+                    min: parseInt($form.find('[name="comments[max]"]').val())
+                }

Или

if (!i && !this.index[key].isPunctuation() && type!=='li') self.root.children.push(this.index[key]);

Многие блоки кода имеют высокую цикломатическую сложность. Chain#getSentence - 10 CC (http://jscomplexity.org/)
Практически все сущности являются и данными и представлением данных (генерация html).

Нужно

  • Разделить данные от представления
  • Обратить внимание на модульные подходы
  • Проверять свой код на сложность, ошибки, консистентность кодстайла

@VladimirShestakov
Copy link
Author

Можно пояснение для лучшего усвоения про jQuery плагин стайл? Как правильней было бы?

@azproduction
Copy link

Как правильней было бы?

$-стиль хорош для компонентов интерфейса, для логики же не совсем удачен. Лучше использовать изолированные модули, например AMD+RequireJS или CommonJS/Modules+LMD. http://habrahabr.ru/post/181536/

@azproduction azproduction reopened this Nov 14, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants