
Nikita
09.05.2017
15:06:21
[ts] Property 'value' does not exist on type 'EventTarget'.
так получше, т.е вернулся откуда начал

Dreamerinnoise
09.05.2017
15:09:39
У тебя там какой тип события?
ChangeEvent?

Google

Nikita
09.05.2017
15:10:50
ага onChange

Dreamerinnoise
09.05.2017
15:11:07
public valueChange = (e: React.ChangeEvent<HTMLInputElement>): void => {
}

Nikita
09.05.2017
15:12:21

Oleg
09.05.2017
18:13:27
Забавно что tsc ошибки гонит в stdout
приходится по слову error подсвечивать

s
09.05.2017
18:34:04
а тут есть Евгений?

Aleh
09.05.2017
19:18:01
Он ж больше ничего и не пишет

Oleg
09.05.2017
19:18:36
не проблем. кроме огорода
gulp.task('tsc', function (cb) {
var firstCompilation = true;
// typescript watch is the best one
var tsc = spawn(require.resolve('./node_modules/.bin/tsc'), ['--module', 'amd', '--target', 'ES5', '--jsx', 'react', '--sourceMap', '--outDir', './public/js', '-w', './src/index.tsx']);
tsc.stdout.on('data', (data) => {
var dataStr = data.toString();
if (dataStr.toLowerCase().indexOf('error') === -1) {
gutil.log('[tsc] ' + dataStr);
} else {
// tsc otput errors to stdout!
gutil.log(gutil.colors.red('[tsc:error] '+ dataStr));
}
if (firstCompilation) {
firstCompilation = false;
cb();
} else {
if (tscCompilationCompleteRegex.test(dataStr)) {
browserReload();
}
}
});

Aleh
09.05.2017
19:19:27
Так а что там кроме ошибок может быть?

Oleg
09.05.2017
19:22:09
var tscCompilationCompleteRegex = / Compilation complete\. Watching for file changes\./;
надо же браузер перегрузить если все ок

Google

Oleg
09.05.2017
19:23:40
еще [22:23:28] [tsc] 10:23:28 PM - File change detected. Starting incremental compilation...
в общем вот собрал сегодня ts->amd, с реактом, который через systemjs грузит приложение. В отличие от вебпака реквайр пофайловый. Как в старом добром requireJs
https://github.com/olegsmetanin/typescript-systemjs

andretshurotshka?❄️кде
10.05.2017
02:12:16
я бы dynamic import ждал)

Anton
10.05.2017
02:18:29
Самое лучше этт partial классы... это бы было замечательно

andretshurotshka?❄️кде
10.05.2017
02:30:53

Anton
10.05.2017
02:37:52
Когда компонент растет а размере и даже декларвция переменных занимает много место syntax sugar который приносят partial улучшит readability и scalability я не говорю о части класса который может быть автоматически генерируемый... это очень классная вещь

andretshurotshka?❄️кде
10.05.2017
02:42:29
Композиция, не?
Если компонент растет, его надо разбить на мелкие компоненты

Anton
10.05.2017
03:30:54
Не всегда применимо и communication может привести к ненужной сложности ... часто это может быть приметивная логика но в большом количестве типа много однотипных контроллов на экране.. но они могут быть с позиции бизнесса единым целым и разбивать их на отделтные компоненты не имеет смысла
В этом случае partial идеалтно работает

Дмитрий
10.05.2017
04:30:35
Только что обсудили смысл — удобство поддержки
С позиции бизнеса это всё — просто препятствия на пути к продукту)) Как будет удобнее с точки зрения разработк — так и лучше

Anton
10.05.2017
05:12:40
???? типичный технический вгляд... помни who pays ur salary mate )))...это мне сказали много лет назад один человек я как и ты подумал.. но с годами я понял у меня зп была ну пусть 100 ка в год у него было состояние 20 млн баксов
Если ты пишешь для себя то да а так ты пишешь потому что есть бизнесс
Не ьудет не будет и програм

Aleh
10.05.2017
06:42:54
Слабо представляю, когда с точки зрения бизнеса не получается разбить компонент

da horsie
10.05.2017
06:43:18
@mkusher воооо. щас я тебя буду мучить вопросами
расскажи мне, как организовать минимальное окружение, чтобы писать на тайпскрипте и гонять tdd/bdd тесты?
jasmine-ts это правильный выбор?

Google

Aleh
10.05.2017
06:46:11
mocha+chai+sinon

da horsie
10.05.2017
06:46:40
что у меня должно быть в package.json?
чтобы вот прям самый минимум
тесты в консоли

Anton
10.05.2017
06:47:23
у меня была ситуация когда консалтент написал джененрик компонент и стал испльзовать его в двух с точки зрения бизнесса разных компонентов так вот требования росли и компоненты удалялись друг от друга когда настал момент и он сказал что все не может это быть дженерик и надо их разбивать и потребуется спринт на это))) вот это было issue потому что с позиции бизнесса они были всегда разные) на синиро уровне когда общаешься с бизнесс репресентативс важныую роль играет alignment с бизнессом и понимаешь стратегии компании) ну это так если кто то хочет больше чем быть инженером)

Dreamerinnoise
10.05.2017
06:47:25

Aleh
10.05.2017
06:48:11
npm i -D mocha chai sinon sinon-chai @types/mocha @types/sinon @types/chai @types/sinon-chai
Он норм мапит
dry он конечно про business value, но тут мы сами должны танцевать, чтобы на длинном отрезке получить профит


Alex
10.05.2017
06:56:54
Я сейчас не про top level архитектуру, а про внутреннюю кухню.
Просто в определенный момент, наступает понимание, что вот эту портянку и 2к loc надо разобрать на части, потому что вот теперь-то понятно, как это должно работать.

Aleh
10.05.2017
06:59:19
Да, рефакторинг это часть процесса, а не какой-то этап, который надо выпросить)

Alex
10.05.2017
06:59:55
И очень часто то понимание, которое есть в начале, о том как это разбить на части, и как части будут друг с другом взаимодействовать, очень сильно отличается от того, что происходит после того, как код уже battle tested

Aleh
10.05.2017
06:59:57
Good enough и все такое

Alex
10.05.2017
07:00:08
Такие дела.
Ага

da horsie
10.05.2017
07:00:43

Google

Aleh
10.05.2017
07:01:32

da horsie
10.05.2017
07:02:08
будет браузерное. но я пока хочу просто с языком поиграться

Admin
ERROR: S client not available

da horsie
10.05.2017
07:02:19
погонять тесты в консоли
без DOM

Aleh
10.05.2017
07:03:06
Короч самый простой вариант - в tsconfig указать outDir: lib

da horsie
10.05.2017
07:03:20
так
указал

Aleh
10.05.2017
07:06:28
Добавь в package.json в scripts:
start: tsc -w
specs: mocha lib/hello.spec.js

Anton
10.05.2017
07:10:59
понимаете чем выше позиция тем больше ты принимаешь во внимание стратегию и другие бизнесс параметры и например если ты в старапе и завтра менеджер делает питч перед инвестерами то ты должен понимать что ему похер как ты пишешь лишь бы оно было сделано хоть хардкодид ) потому что если питч неудачный или нет кода и небудет транша то все работы не будет вообще) ну это как пример что в реал жизни часто кроме технических факторов приходится принимать еще и другие состовляющие

Aleh
10.05.2017
07:12:15

Anton
10.05.2017
07:13:28
просто если бизнессу нахер не интересно что ты будешь тратить время на это я уже не говорю о том что если они еще и взаимодействуют то проще оставить большой компонент
partial решили бы это в секунду) поэтму классно было бы если бы это добавили
тем более я говорил о примитивно куче однотианый скажем компонентов типа rich text area)

Aleh
10.05.2017
07:14:37

Anton
10.05.2017
07:15:08
нет просто если завтра ты бы не успел то не было бы ни тебя ни их)

da horsie
10.05.2017
07:15:14

Anton
10.05.2017
07:15:15
вот это бизнесс волнует)

Aleh
10.05.2017
07:15:32

Anton
10.05.2017
07:15:40
backlog)))))

Google

Anton
10.05.2017
07:15:42
это другое
это management control
и тип контороля
скажем в критический ситуации лучший будет micromanagement

Дмитрий
10.05.2017
07:42:11
Стойкое ощущение, что читаю натянутое обоснование для любимой фичи
Которую даже в C# завозили по вполне конкретной специфичной причине
Никакого отношения к бизнесу с громадными компонентами не имеющего
Проблема в том, что в js достаточно гибкости, чтобы реализовать и такую фичу
Просто это никому совершенно не нужно

Anton
10.05.2017
07:53:10
в том же си шарпе партиал играет огромную роль в автогенериремом коде например с теми же ORM типа EF тоже самое бы дало окромный буст джава скрипту) мне честно наплевать на эту вищу я вообще честно в комерческом аспекте давно отошел от программинга)
а если быть честным то подобный реквест был сделан пару лет назад но видимо решили что мало кому нужно)

Sergey
10.05.2017
07:56:19