
AlexAnder
12.05.2018
03:42:53
от этих типов больше проблем, чем пользы

andretshurotshka?❄️кде
12.05.2018
03:43:18
От тайпскрипта да
И от углового тоже
¯\_(ツ)_/¯

Google

Denis
12.05.2018
03:44:31

andretshurotshka?❄️кде
12.05.2018
03:44:35

Denis
12.05.2018
03:45:29
ну так если у человека от типов проблемы)

andretshurotshka?❄️кде
12.05.2018
03:45:59
Я бы не юзал ангулар 5+
Без типов тем более

Sergey
12.05.2018
05:54:55

Муслим
12.05.2018
09:09:58
Ребят, кто как ts node дебажит ? Говорят есть для этого расширение в вс коде, может есть более удобные решения ?

andretshurotshka?❄️кде
12.05.2018
09:12:50
Сорсмапы

Sergey
12.05.2018
09:12:55
Так там же хромовский дебаг протокол
И в каком смысле более удобные? Там точки останова есть, просмотр значений есть, чего надо-то ещё? Проблема в чём именно?

Муслим
12.05.2018
09:15:38
Привык к хромовскому дебагу, сейчас вроде конфиг в вс коде настроил, буду пробовать

Sergey
12.05.2018
09:16:03
Ну в вскоде он такой же

Google

Муслим
12.05.2018
09:16:07
Благодарю

Sergey
12.05.2018
09:17:11
Ну как, это ж нода предоставляет инфраструктуру для отладки, а редактор уже можно любой прикрутить

Aleh
12.05.2018
11:27:43

Sergey
12.05.2018
11:41:02
И я никак понять не могу зачем он >.<

Aleh
12.05.2018
11:47:24

Sergey
12.05.2018
11:52:13

Aleh
12.05.2018
11:53:05

Sergey
12.05.2018
11:59:06
tsc —watch?
Более-менее понял, спасибо.

Abdulvakhab
13.05.2018
11:38:15
Здравствуйте, такой вопрос, в названии интерфейсов в TypeScript бывают вроде ElementSet, а в C# я видел вроде IElementSet. Подскажите пожалуйста практикуются ли такие названия в TypeScript?

Aleh
13.05.2018
11:39:00
практикуют, но не все
хз зачем

Abdulvakhab
13.05.2018
11:43:12
На первый взгляд кажется что это вносит ясность разделяя названия класса и интерфейса. А я правильно понимаю, что стоит придерживаться таких названий как в документации. Просто мне раз сдели замечание что пишу без I

Alice
13.05.2018
11:44:47

Aleh
13.05.2018
11:45:32
да, такие решения принимаются на уровне проекта

Abdulvakhab
13.05.2018
11:46:23
Хорошо, спасибо большое!)

Пёс Цифрового Сопротивления
13.05.2018
11:59:26

Google

Пёс Цифрового Сопротивления
13.05.2018
12:00:02
Имхо все эти префиксы растут с тех времён, когда редакторы были тупыми

Alice
13.05.2018
12:00:52

Пёс Цифрового Сопротивления
13.05.2018
12:01:11
Сейчас я скорее против

Alice
13.05.2018
12:01:22
Сейчас вообще не понимаю, да.
Префикс — лишняя сущность по сути.

AlexAnder
13.05.2018
12:05:27
А если у вас есть interface IEmailSender с методом Send
и вы создаете класс EmailSender реализовав метод Send интерфейса IEmailSender
вам бы пришлось и для класса и для интерфейса использовать одиннаковое имя ?
interface EmailSender {}
class EmailSender implements EmailSender {}
гуд стори не юзать префикс i для интерфейсов
простительно я думаю только жсникам

andretshurotshka?❄️кде
13.05.2018
12:06:38
Не надо интерфейс так называть

Андрей
13.05.2018
12:07:26
Это прям самое ужасное что можно сделать имхо

Artur
13.05.2018
12:08:02
interface EmailSender {}
class RealEmailSender implements EmailSender {}
class FakeEmailSender implements EmailSender {}

AlexAnder
13.05.2018
12:08:53
ох щи ))

Morsik
13.05.2018
12:08:59
сравните
interface CanSendMail {}
interface ICanSendMail {}
очевидно второй круче

Artur
13.05.2018
12:09:09

AlexAnder
13.05.2018
12:09:20
т.е. использование в классах префикса Real лучше,
чем использовать префикс i для интерфейсов ?)))))

Artur
13.05.2018
12:09:53
intertface EmailSenderInterface {}
abstract class EmailSenderAbstract implements EmailSenderInterface {}
class RealSenderImplementation extends EmailSenderAbstract {}

andretshurotshka?❄️кде
13.05.2018
12:10:10

Google

Artur
13.05.2018
12:10:49
Опять таки, Real это как пример, там может быть например SystemEmailSender, который использует системный вызов какой-нить

AlexAnder
13.05.2018
12:10:52

Morsik
13.05.2018
12:10:54
interface FakeEmailSenderInterface {}

Пёс Цифрового Сопротивления
13.05.2018
12:11:04

Admin
ERROR: S client not available

Андрей
13.05.2018
12:11:09
Сейчас религиозная война начнется))

Artur
13.05.2018
12:11:13

AlexAnder
13.05.2018
12:11:31
ну или получше взять пример
есть logger - interface
и от него уже всякие fileLogger, dbLogger, memoryLogger, etc..

Artur
13.05.2018
12:11:41
ChainLogger

AlexAnder
13.05.2018
12:12:03
or just for test + mock\stub
хотя в жс и моки не нужны

andretshurotshka?❄️кде
13.05.2018
12:12:29
interface Sender<T> {}
class EmailSender implements Sender<Email> {}

AlexAnder
13.05.2018
12:12:34
as any и ок

Пёс Цифрового Сопротивления
13.05.2018
12:12:52
Для тестов полную имплементацию накладно делать обычно
1 метод замокаешь и ок

Aleh
13.05.2018
12:14:22

AlexAnder
13.05.2018
12:14:42
тоже хороший вопрос

Google

AlexAnder
13.05.2018
12:14:46
жс и тс это ж не ооп

Artur
13.05.2018
12:15:08

AlexAnder
13.05.2018
12:15:11
юзаешь прототипы и ты ок посан ?

Aleh
13.05.2018
12:15:30
Если у интерфейса одна реализация, то зачем его заводить, а если не одна, то у реализаций должно быть отличие, которое должно быть отражено в имени

AlexAnder
13.05.2018
12:16:30
опять же повторюсь, смысл одной реализации в том, что можно прикрутить ioc/di и потом легко писать тестируемый код

Aleh
13.05.2018
12:17:10
Все это точно так же ок и в случае одного класса без интерфейса
И в случае без классов тоже ок

Alice
13.05.2018
12:18:05

AlexAnder
13.05.2018
12:18:47
интересно как это вы собрались имплементировать класс ))))

Aleh
13.05.2018
12:18:49

AlexAnder
13.05.2018
12:19:09
ну а если я допустим заядлый бекендщик на шарпе

Alice
13.05.2018
12:19:14

AlexAnder
13.05.2018
12:19:16
где есть норм ооп
мне перестраиваться на кривой ооп для жс?

Aleh
13.05.2018
12:19:28