@gogolang

Страница 255 из 1630
Oleg
12.05.2017
06:50:33
Что такое быдлокод?:)
Это код, с которым взаимодействовать невозможно. Код, который по своим понятиям общается. Код, с которым придется бороться не на жизнь, а на смерть, т.к. по-нормальному от него чего-то добиться не получится.

Andrey
12.05.2017
06:53:26
не, ну если ему по понятиям СОЛИДных людей заяснить, думаю, одумается

?FLERRY?
12.05.2017
06:59:33
?

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

Google
?FLERRY?
12.05.2017
07:02:16
объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы

Википедия, мать ее

Alexander
12.05.2017
07:22:16
Понятно всё, вы чо. Но практического смысла не очень много, если уже есть какой-то опыт разработки

А если нет, то людям непонятно

?

Maxim
12.05.2017
07:31:00
вот тут-то я и проиграл

Alexander
12.05.2017
07:58:52
практического не очень много, особенно сейчас. теоретический наверное есть

Anton
12.05.2017
08:02:02
но это же solid

я думаю в нем есть смысл даже сейчас

Alexander
12.05.2017
08:05:41
но это неточно(с) :)

Anton
12.05.2017
08:06:42
)))

Google
Maxim
12.05.2017
08:37:07
кто-нибудь юзал container/heap?

он потокобезопасный?

вроде как нет, ну ладно

Aleksandr
12.05.2017
08:41:12
практического не очень много, особенно сейчас. теоретический наверное есть
эм, на принципе лисков практически все работает. это соответствие интерфейсу. ты интерфейсы не видишь в либах?

Alexander
12.05.2017
08:42:57
то как оно работает – это конкретная реализация, и решения авторов языка. тезисы лисков настолько абстаркты что применимы много к чему. на практике нас интересуют детали

?FLERRY?
12.05.2017
08:43:05
очень понятно написано
я вполне себе понимаю это, но читая определение с википедии это непонятно моментально, во всяком случае у меня так было, хоть и давненько

в отличие от остальных принципов

Alexander
12.05.2017
08:47:51
More formally, the Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, that was initially introduced by Barbara Liskov in a 1987 conference keynote address titled Data abstraction and hierarchy

до 87 года не было интерфейсов или чего-то подобного в ЯП?

Aleksandr
12.05.2017
08:49:58
да, не только интерфейсы, но и наследование где оно есть итд. в общем в разных языках есть реализации, и на этих реализациях основано современное программирование. Поэтому тезис что это не актуально, не верен.

Alexander
12.05.2017
08:55:00
тезис не полезен на практике и замутняет мозг неофитам из-за своей абстрактности, не неофитам он тоже уже не нужен, потому что они столкнулись уже с конкретными реализациями. его полезность тока теоретическая чтобы абстрактно дискутировать о программировании в общем, без конкеретики.

чем мы и занимаемся последние -цать минут :)

m
12.05.2017
08:56:49
[last news] Pilosa: open source, distributed bitmap index in Go
Читал, но не понял, зачем оно.

Aleksandr
12.05.2017
08:57:06
как может быть не полезен тезис, реализациями которого ты пользуешься каждый день в работе?

Alexander
12.05.2017
08:58:26
см. выше

Aleksandr
12.05.2017
08:59:01
см. выше
см. ниже

Alexander
12.05.2017
08:59:02
это не реализации, наоборот принцип описывает абстрактно то что уже есть в ЯП

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

Google
Aleksandr
12.05.2017
08:59:27
это не реализации, наоборот принцип описывает абстрактно то что уже есть в ЯП
и? кодификация того, что уже присутсвует также важна

Alexander
12.05.2017
08:59:41
важна, в академиях

я про практику программирования, которое ремесленный навык, а не инженерный или абстрактно математический

Aleksandr
12.05.2017
09:00:37
тогда теоретические книги по парадигмам прогарммирования можно вообще не читать. только учебники по конкретным языкам. остальное оставим академикам.

Alexander
12.05.2017
09:01:49
это правда. можно не читать, но можно почитать если интересно теоретическую базу прокачать

Aleksandr
12.05.2017
09:04:34
это правда. можно не читать, но можно почитать если интересно теоретическую базу прокачать
крайне не согласен. теория сильнее практики прокачивает навыки программирования. можно на практике экспериментальным путем найти какие то хорошие решения, но прочитав теорию можно узнать как надо, до чего сам не додумался. Возможно немного в сторону ушли от Лисков

Alexander
12.05.2017
09:05:45
ну ок, у меня протовоположно мнение. только практика может прокачать в таком прикладном скилле как программирование, теория не будет понятна и будет применятся неправильно без солидной практики

Alexander
12.05.2017
09:06:03
На самом деле принцип подстановки Лисков очень простой и большинство программистов придерживается его на интуитивном уровне. Но академическое определение действительно может ввести в ступор :)

Alexander
12.05.2017
09:06:16
на этом предлагаю закончить спор, каждый высказал своё мнение

Anton
12.05.2017
09:06:52
и все-таки LSP не только о наследованиии, а еще и о API, так что не вижу тут капитанства в нем

Alexander
12.05.2017
09:12:02
я ничего против Liskov, SOLID и абстрактных знаний не имею, если чо пугает просто религиозность в отношении к ним и черезмерное внимание к принципам а не к реальной практике (смотри посты от разных авторов про то как надо правильно писать SOLID-программы)

Мерлин
12.05.2017
14:16:59
Используете ли вы системы сборки? ничего – 12 ??????? 44% make – 10 ?????? 37% другое – 3 ?? 11% gb – 1 ? 4% gulp o_O – 1 ? 4% gradle O_o ▫️ 0% ? 27 people voted so far.

Constantine
12.05.2017
14:17:53
ааа, только один вариант

ну как так

Мерлин
12.05.2017
14:18:27
ааа, только один вариант
Напиши, что используешь своими словами :3

12.05.2017
14:18:35
webpack

Ruslan
12.05.2017
14:19:10
webpack
в приличном обществе о таком не говорят

Мерлин
12.05.2017
14:19:23
webpack
о_о

Mars
12.05.2017
14:20:31
Я использую make, а внутри уже и webpack и xgettext и много чего еще

Google
Ruslan
12.05.2017
14:20:35
о_о
что с нами стало

Мерлин
12.05.2017
14:22:13
Я использую make, а внутри уже и webpack и xgettext и много чего еще
Для того, чтобы собирать и фронтенд и бэкенд?

Мерлин
12.05.2017
14:23:07
ну тогда норма

У меня есть знакомый, который грейдлом go собирает

Илья
12.05.2017
14:26:06
у меня как то make + gb

тк одного костыля недостаточно

Alexey
12.05.2017
14:26:41
Подскажите пожалуйста. Мне нужно внутри go выполнить команду ffmpeg. На вход я передаю mp4 файл в виде resp.Body от http запроса, который выполнился до этого куска кода cmd := exec.Command("ffmpeg", "-f", "lavfi", "-i", "anullsrc=channel_layout=stereo:sample_rate=44100", "-i", "pipe:0", "-shortest", "-c:v", "copy", "-c:a", "aac", "output.mp4") cmd.Stdin = resp.Body cmd.Run() На выходе после cmd.Run() хочу получить объект io.Reader, как результат работы ffmpeg, который можно было бы потом скормить телеграм боту reader := tgbotapi.FileReader{Name: "test", Reader: output, Size: int64(contentLength)} file := tgbotapi.NewDocumentUpload(messageChatID, reader) код по ffmpeg выше сейчас сохраняет на диске output.mp4, тем саммым показывая, что передача resp.Body в пайп работает. Нокак сделать, чтобы на выходе еще был результат обработки в виде объекта, а не файла, я не понимаю ?

Мерлин
12.05.2017
14:26:57
хотелось бы что-то типа build.go в корне проекта

было бы очень удобно

Alexey
12.05.2017
14:30:22
пробовал... но не понятно в какой переменной ловить аутпут?

Мерлин
12.05.2017
14:34:07


Alexey
12.05.2017
14:35:42
Илья
12.05.2017
14:49:58
хм

см что-нибудь такое pr, pw := io.Pipe() tr := io.TeeReader(u, pw)

даже pipe, наверное, хватит

Alexey
12.05.2017
14:51:48
даже pipe, наверное, хватит
не до конца понял... куда это встроить в том коде, что я прислал?

Илья
12.05.2017
14:53:06
ну, я не вдавался в подробности, но, думаю, горутина, которая занимается транскодингом может получать pipe, писать в pipewriter, а другая горутина pipereader отправить в telegramapi

Google
Илья
12.05.2017
14:54:08
см https://garbagecollected.org/2015/05/30/io-with-go-io-pipe/

я понятно выражаюсь? :)

Alexey
12.05.2017
15:03:36


но я выше писал, что код по ffmpeg, что я показал сейчас сохраняет на диске output.mp4, тем саммым показывая, что передача resp.Body в пайп работает.

а resp.Body не закроется раньше, чем кодирование закончится?
т.е. проблем с тем чтобы передать что-то в ffmpeg нет, есть неясность как забрать результат

Мерлин
12.05.2017
15:07:06
https://medium.com/@cep21/preemptive-interface-anti-pattern-in-go-54c18ac0668a

Alexey
12.05.2017
15:08:09
я понятно выражаюсь? :)
посмотрел, понял пока на до конца... не понятно как это поможет забрать результат обработки ffmpeg

Мерлин
12.05.2017
15:09:00
т.е. проблем с тем чтобы передать что-то в ffmpeg нет, есть неясность как забрать результат
При создании Command передай структуре буфер RTFM https://golang.org/src/os/exec/exec.go?s=1032:3774#L33

Alexey
12.05.2017
15:09:15
а resp.Body не закроется раньше, чем кодирование закончится?
resp.Body - это входной параметр, он после выполнения ffmpeg больге не нужен. я хотел получить результат в другую переменную...

Aleksandr
12.05.2017
15:10:20
resp.Body.Close() в самом конце делается
у него таймаут еще есть - закроется раньше если не успеешь его вычитать.

Мерлин
12.05.2017
15:11:12
При создании Command передай структуре буфер RTFM https://golang.org/src/os/exec/exec.go?s=1032:3774#L33
buf := &bytes.Buffer{} errBuf := &bytes.Buffer{} ... cmd.Stdin = resp.Body cmd.Stdout = buf cmd.Stderr = errBuf

И обязательно нужно проверять на ошибку

Go дайджест. События, статьи, интересные проекты из мира Go (1 — 12 мая 2017) Всем привет! В этом дайджесте представлены лучшие статьи за прошедшую неделю, а также новости, события и проекты, заслуживающие ваше внимание. Новости, События — Gobot 1.5 EN — Релиз 3.1.0 веб-фреймворка echo EN ... https://tehnojam.pro/category/development/go-dajdzhest-sobytija-stati-interesnye-proekty-iz-mira-go-1--12-maja-2017.html



http://golangshow.com/online/

Ighar
12.05.2017
15:29:44
http://golangshow.com/online/
это можно в канал форварднуть?

Мерлин
12.05.2017
15:30:19
это можно в канал форварднуть?
Автор не я, но думаю можно

Иначе было бы странно

Ighar
12.05.2017
15:30:56
? это да

Страница 255 из 1630