Зря так категорично.Я например написал большой HTML5 фреймворк- на javascript.
Там более 15000 строк кода. От перевода на typescript он только выиграет. Его легче потом будет использовать.
Сегодня начал переводить этот фреймворк на typescript.
Не знаю сколько это займет времени. Но первые результаты меня впечатляют.
Рефакторинг становится простой задачей. Доступ ко всем классам с полным intelisense и
ошибки теперь отлавливаются сразу. Жаль, что пока typescript в альфа версии, но опыт показывает,
что работать с ним можно.
В любом случае, это не совсем решает проблему.
В демо используются база данных, что вынуждает при публикации демо сделать его в режиме только для чтения.
(Не могу же я дать каждому возможность менять записи в базе)
Если я сделаю хранение данных в сессии, то это приведет, к тому, что будет использоваться много памяти на сервере- и провайдер не даст ее сколько хочешь за бесплатно.
Поэтому, пока только youtube.
P.S.-
К стати, опубликовал только, что продолжение этого топика.
OK — во многом вы правы. Если бы я изначально решил публиковать проект на GitHub, то
я бы так и сделал. Это все по историческим причинам.
Я вообще хочу его перевести полностью на typescript, чтобы была готовность к любой версии EcmaScript в будущем.
И внутри легче рефакторинг делать, перенес часть кода, и сразу видно, что перестает компилироваться.
Скорее всего в этом месяце начну его переводить на другой язык.
Хотел еще отметить почему один файл для меня удобней.
1) Над этим проектом работал один человек — нет конкуренции за файл.
2) Если в программе происходит ошибка — я знаю номер строки и мне легче найти источник ошибки.
3) Мне легче искать по тексту, чем по файлам если я ищу где используется функция.
4) Изоляция в отдельный файл, это не тоже самое, что изоляция модулями. Весь проект состоит из модулей (где — то около 20). Помещены они в один файл или в 20 не имеет значения для изоляции.
5) Такое расположение модулей в одном файле не мешает тестированию. Пишите тест, используйте модуль- какая разница в каком он файле?
6) По поводу сборок — если вы заметили, то в одном файле только core modules (ключевые), пользовательские модули (как в демо) все имеют отдельный файлы. Возможно, это только мешает замене одного модуля на сторонний. Но, все равно вы его соберете потом в один файл. Модули написанные для ядра неизвестно кем могут все порушить, поскольку модули ядра работают с внутренним API, который может меняться- а сторонний модуль ничего не знает о внутренних изменениях. Да и смысл сборок здесь какой — например, оставить только Data Binding, а остальное отбросить? Только это ядро фреймворка, и там некоторые части могут зависеть одна от другой.
То что, уже добавляется над ядром, то это можно комбинировать как угодно.
В том, что это показывает его возможности по работе с данными.
Намного проще посмотреть 4 минутный ролик, чем скачивать демо и запускать у себя на компе.
А выкладывать демо в онлайн? Так за хостинг платить надо.
Не знаю, я раньше создавал другой меньший Фреймворк — его разбивал на отдельные скрипты — это было неудобно перелезать из файла в файл.
Потом я стал использовать JetBrains WebStorm — в нем очень удобно работать и в таком формате, он все модули схлопывает и я
просто выбираю тот который мне нужен и раскрываю его.
Просто, если есть нормальный инструмент, то и кажущееся
неудобным становится удобным.
P.S. -к стати там где — то около 15 K строк (не 1.5 K).
Там более 15000 строк кода. От перевода на typescript он только выиграет. Его легче потом будет использовать.
Не знаю сколько это займет времени. Но первые результаты меня впечатляют.
Рефакторинг становится простой задачей. Доступ ко всем классам с полным intelisense и
ошибки теперь отлавливаются сразу. Жаль, что пока typescript в альфа версии, но опыт показывает,
что работать с ним можно.
В демо используются база данных, что вынуждает при публикации демо сделать его в режиме только для чтения.
(Не могу же я дать каждому возможность менять записи в базе)
Если я сделаю хранение данных в сессии, то это приведет, к тому, что будет использоваться много памяти на сервере- и провайдер не даст ее сколько хочешь за бесплатно.
Поэтому, пока только youtube.
P.S.-
К стати, опубликовал только, что продолжение этого топика.
я бы так и сделал. Это все по историческим причинам.
Я вообще хочу его перевести полностью на typescript, чтобы была готовность к любой версии EcmaScript в будущем.
И внутри легче рефакторинг делать, перенес часть кода, и сразу видно, что перестает компилироваться.
Скорее всего в этом месяце начну его переводить на другой язык.
1) Над этим проектом работал один человек — нет конкуренции за файл.
2) Если в программе происходит ошибка — я знаю номер строки и мне легче найти источник ошибки.
3) Мне легче искать по тексту, чем по файлам если я ищу где используется функция.
4) Изоляция в отдельный файл, это не тоже самое, что изоляция модулями. Весь проект состоит из модулей (где — то около 20). Помещены они в один файл или в 20 не имеет значения для изоляции.
5) Такое расположение модулей в одном файле не мешает тестированию. Пишите тест, используйте модуль- какая разница в каком он файле?
6) По поводу сборок — если вы заметили, то в одном файле только core modules (ключевые), пользовательские модули (как в демо) все имеют отдельный файлы. Возможно, это только мешает замене одного модуля на сторонний. Но, все равно вы его соберете потом в один файл. Модули написанные для ядра неизвестно кем могут все порушить, поскольку модули ядра работают с внутренним API, который может меняться- а сторонний модуль ничего не знает о внутренних изменениях. Да и смысл сборок здесь какой — например, оставить только Data Binding, а остальное отбросить? Только это ядро фреймворка, и там некоторые части могут зависеть одна от другой.
То что, уже добавляется над ядром, то это можно комбинировать как угодно.
Намного проще посмотреть 4 минутный ролик, чем скачивать демо и запускать у себя на компе.
А выкладывать демо в онлайн? Так за хостинг платить надо.
Это был топик для инвайта и я его писал около 12 ночи.
Думаю потом написать что-то поподробнее про него.
Потом я стал использовать JetBrains WebStorm — в нем очень удобно работать и в таком формате, он все модули схлопывает и я
просто выбираю тот который мне нужен и раскрываю его.
Просто, если есть нормальный инструмент, то и кажущееся
неудобным становится удобным.
P.S. -к стати там где — то около 15 K строк (не 1.5 K).