Home
golang
golang@conference.jabber.ru
Воскресенье, 22 декабря 2013< ^ >
ftrvxmtrx установил(а) тему: Go Programming Language. http://tip.golang.org/pkg
|| Всегда используйте hg tip. Не ждите релизов.
|| Логи: http://chatlogs.jabber.ru/golang@conference.jabber.ru/
|| Изучаем: https://gobyexample.com/
|| Сторонние либы: http://godoc.org/
|| http://github.com/goerlang
Конфигурация комнаты
Участники комнаты

GMT+4
[00:03:16] Пшаас вышел(а) из комнаты
[00:16:28] ermine вышел(а) из комнаты
[00:32:52] postman_ вышел(а) из комнаты
[00:47:22] postman_ вошёл(а) в комнату
[01:31:44] drumond вышел(а) из комнаты: Replaced by new connection
[01:31:46] drumond вошёл(а) в комнату
[01:36:57] drumond вышел(а) из комнаты
[02:26:56] postman_ вышел(а) из комнаты
[02:27:00] Darth Лис вышел(а) из комнаты
[05:07:42] krab вошёл(а) в комнату
[07:36:46] Комната остановлена
[07:51:12] Комната запущена
[07:51:12] Kxepal вошёл(а) в комнату
[08:45:32] rm вошёл(а) в комнату
[08:45:36] rm вышел(а) из комнаты
[09:18:25] krab вошёл(а) в комнату
[10:35:52] ermine вошёл(а) в комнату
[10:42:38] krab вышел(а) из комнаты
[10:47:15] krab вошёл(а) в комнату
[11:21:36] begemot_sun вошёл(а) в комнату
[12:14:31] sakujii вошёл(а) в комнату
[12:36:15] drumond вошёл(а) в комнату
[13:25:13] Deirz вошёл(а) в комнату
[13:26:44] Пшаас вошёл(а) в комнату
[14:03:18] Dmitry Andriyankov вошёл(а) в комнату
[14:03:42] <Dmitry Andriyankov> Всем привет, надеюсь здесь есть кто-нибудь )
[14:05:26] <Dmitry Andriyankov> Мне нужно что-нибудь в Go похожее на std::iostream из мира С++. Я как понимаю надо смотреть в сторону bufio так ли это?
[14:32:05] postman_ вошёл(а) в комнату
[14:52:58] Пшаас вышел(а) из комнаты
[15:07:06] Darth Лис вошёл(а) в комнату
[15:08:42] <Darth Лис> Dmitry Andriyankov, а что делает iostream?
[15:10:22] <Dmitry Andriyankov> Это интерфейс. Его потомки, после имплементации методов могут читать, писать, перемещать позицию для чтения или позицию для записи и ряд др. операций. Примечательно то что потомки могут быть любыми! Как классами для работы с файлами, так и с памятью или с сетью
[15:11:24] <Darth Лис> Dmitry Andriyankov, http://golang.org/pkg/io/
[15:11:30] <Darth Лис> тут все интерфейсы
[15:11:41] <Darth Лис> Reader/Writer/Closer и тд
[15:12:08] <Darth Лис> а bufio
[15:12:14] <Darth Лис> это уже имплементация
[15:12:45] <Dmitry Andriyankov> Я посмотрел, но работа с ними не удобна. К примеру после открытия os.Open я имею os.File , но это нифига не интерфейс. А чтобы прочитать должен сначала присвоить в Reader, если захочу писать еще одна переменная, хочу установить позицию еще одна. Вобщем как-то много действий
[15:13:07] <krab> омг какой ужас! джависты бы уже давно считали файл в память, сделали бекап старого, изменили, записали полностью файл на винт, удалили бекап, во время удаления получили OutOfMemory из-за того что не удалили файл из памяти ._.
[15:13:45] <Darth Лис> бгг
[15:14:36] <Dmitry Andriyankov> Ну как бы прямые руки и думать головою никто не отменял. Только вот зачем вводить много буков из-за того что большая масса не хочет думать? )))
[15:15:10] <Darth Лис> Dmitry Andriyankov, думаю твоя проблема в том что ты пишешь с++ на го
[15:15:19] <Darth Лис> а тебе надо категориями го мыслить
[15:15:43] <Dmitry Andriyankov> Язык программирования он и в африке язык! Понятие "интерфейса" придумали задолго до С++ ;)
[15:16:09] <Darth Лис> окей.жпг
[15:16:37] Пшаас вошёл(а) в комнату
[15:18:46] <Dmitry Andriyankov> Darth Лис: о. Давай посмотрим так. Есть проблема: чтения из источника, но при этом хочется не привязывать к конкретике и работать с абстакцией. Как это сделать? Я пока вижу так: в фукнцию передаю аргумент типа os.File назову его arg, внутри этой функции когда мне надо читать я присваиваю arg в Переменную типа bufio.Reader , а когда надо писать я этот аргумент arg уже присваиваю в bufio.Writer , все верно?
[15:20:29] <Darth Лис> func readStream(r io.Reader) int
readStream(*os.File)
[15:22:02] <Darth Лис> Dmitry Andriyankov, это я к тому что надо разделять операции по разным функциям
[15:22:19] <Darth Лис> а в сигнатурах объявлять минимально возможное дейстсиве
[15:22:19] <Dmitry Andriyankov> Ну начнем с того что на Go повлияли многие языки и авторы не скрывали что они хотели сохранить "дух работы на C" , а в этом языке приятно работать с FILE , который может быть как файлом, так и чем угодно другим ) При этом вокруг этого FILE есть fread()/ fwrite()
[15:23:30] <Darth Лис> ну я и говорю
[15:23:34] <Darth Лис> минимально нужный
[15:23:40] <Darth Лис> есть io.ReadWriter
[15:23:48] <Darth Лис> вот его и объявляй всигнатуре
[15:23:58] <Dmitry Andriyankov> ок, но я не видел у него seek()
[15:24:00] <Darth Лис> если не надо писать а только читать, тогда io.Reader
[15:24:42] <Darth Лис> Dmitry Andriyankov, ну глянь же в ссылку что я дам
[15:25:04] <Darth Лис> там и Seek есть и Read и Write и во всех возможных комбинациях
[15:25:34] <Darth Лис> ReadWriteSeeker вот даже
[15:25:40] <Darth Лис> но это уже мутант %)
[15:26:27] <Dmitry Andriyankov> http://golang.org/pkg/io/#ReadWriter
Есть:
type ReadWriter interface {
        Reader
        Writer
}
ни тот ни другой не имеют seek() Подобной операции
[15:26:54] <Darth Лис> http://golang.org/pkg/io/#ReadWriteSeeker
[15:27:23] <Darth Лис> C-f поюзай на странице %) по слову seek
[15:28:18] <Dmitry Andriyankov> Я его исключил из своего рассмотрения, т.к подумал что переменную типа os.File нельзя присвоить переменной типа ReadWriteSeeker
[15:28:44] <sakujii> чем Go лучше Ruby?
[15:29:04] <Dmitry Andriyankov> не знаю этот Ruby , но за Go есть будущее!
[15:29:14] <sakujii> пфф
[15:29:16] <Deirz> Dmitry Andriyankov: прочитай ещё внимательно насчет интерфейсов в го
[15:29:19] <sakujii> кто сказал?
[15:29:41] <sakujii> все ети Go, Rust и подобные вылупились недавно
[15:29:45] <sakujii> вот все и увлекаются
[15:29:50] <Darth Лис> Dmitry Andriyankov, os.FIle реализует отлично и Read и Write и Seek значит его можно передавать в функцию в сигнатуре которой io.ReadWriteSeeker пробит
[15:29:58] <Deirz> типу не обязательно обьявлять, что он реализует определенный интерфейс
[15:30:16] <Deirz> он просто реализует методы с правильными сигнатурами и всё работает
[15:30:23] <Dmitry Andriyankov> пацаны, не кидайтесь помидорами ))) я еще новичок, только только читаю ))) и просвящаюсь )
[15:30:47] <Darth Лис> Dmitry Andriyankov, http://golang.org/doc/effective_go.html
[15:30:55] <Darth Лис> это читал?
[15:31:10] <Darth Лис> там про все-все эти приколы и особенности
[15:31:18] <Dmitry Andriyankov> Darth Лис: давно открыта, но мой уровень чтения английского весьма хреновый поэтому я пока на стадии чтения panic/recover
[15:31:44] <Darth Лис> Dmitry Andriyankov, https://gobyexample.com/
[15:31:49] <Darth Лис> и это в догонку
[15:31:55] <Dmitry Andriyankov> sakujii: ну во первых посмотри на авторов. А вот авторы являют отцами UNIX. А теперь посмотри что является для ИТ UNIX-подобные системы?
[15:32:08] <Dmitry Andriyankov> Darth Лис: Тоже открыл, как зашел в эту комнату
[15:32:32] <Darth Лис> ок, как справишься с обоими тогда и задавай вопросы
[15:32:35] <Darth Лис> если ещё останутся :D
[15:32:52] <Пшаас> sakujii: на нем не пишут хуесосы вроде sakujii
[15:32:53] <Пшаас> как минимум
[15:33:03] <sakujii> Пшаас: ;)
[15:33:17] <Пшаас> уже пишут?(
[15:33:30] <sakujii> нет :)
[15:33:35] <Darth Лис> sakujii, не так уж и недавно кстати
[15:33:43] <Darth Лис> го в опенсорсе 3 года уже
[15:34:05] <Darth Лис> а всего существует, так вообще 4
[15:34:18] <Darth Лис> но он имеет "богатую семью"
[15:34:34] <Darth Лис> всякие там ньюскваки и лимбы
[15:36:17] <Darth Лис> Пшаас, ты реакт уже облапал?
[15:36:33] <Dmitry Andriyankov> Darth Лис: ты системщик?
[15:36:46] <Darth Лис> Dmitry Andriyankov, нет
[15:36:59] <Darth Лис> бывший ruby on rails наркоман :D
[15:37:07] <Пшаас> Darth Лис: нет времени
[15:37:18] <Darth Лис> Пшаас, а видал приколы что кто-то напейсал реакт под clojurescript?
[15:37:23] <Darth Лис> даже 2 реализации сразу
[15:37:36] <Пшаас> угу, om. Выглядит прикольно
[15:38:05] <Darth Лис> Пшаас, https://github.com/piranha/pump
[15:38:08] <Darth Лис> и вторая :)
[15:39:32] <Darth Лис> Dmitry Andriyankov, а так-то я всякие бэкэндовые демоны пишу обычно
[15:39:44] <Darth Лис> на пщ!
[15:39:51] <Darth Лис> и руби блять с евентмашиной
[15:40:01] Dmitry Andriyankov вышел(а) из комнаты: I'm happy Miranda NG user. Get it at http://miranda-ng.org/.
[15:40:05] Darth Лис ненавидит EM
[15:40:47] <Deirz> колбеки жмут?
[15:54:21] <Darth Лис> пздц
[15:54:33] <Darth Лис> ацкое говнище получается
[16:07:24] Пшаас вышел(а) из комнаты
[16:22:22] krab вышел(а) из комнаты
[17:29:30] Пшаас вошёл(а) в комнату
[18:37:50] postman_ вышел(а) из комнаты: Disconnected: Replaced by new connection
[18:37:55] postman_ вошёл(а) в комнату
[18:55:51] Пшаас вышел(а) из комнаты
[18:59:34] Darth Лис вышел(а) из комнаты
[19:32:04] drumond вышел(а) из комнаты: Replaced by new connection
[19:32:05] drumond вошёл(а) в комнату
[20:00:44] rm вошёл(а) в комнату
[20:41:46] begemot_sun вышел(а) из комнаты
[20:43:20] begemot_sun вошёл(а) в комнату
[20:44:50] begemot_sun вышел(а) из комнаты
[20:45:51] begemot_sun вошёл(а) в комнату
[21:23:02] Пшаас вошёл(а) в комнату
[21:30:39] heaven87 вошёл(а) в комнату
[21:30:41] heaven87 вышел(а) из комнаты
[21:37:49] begemot_sun вышел(а) из комнаты
[21:38:25] begemot_sun вошёл(а) в комнату
[21:55:55] begemot_sun вышел(а) из комнаты
[21:56:48] begemot_sun вошёл(а) в комнату
[22:15:57] ftrvxmtrx вошёл(а) в комнату
[22:33:40] begemot_sun вышел(а) из комнаты
[22:34:36] begemot_sun вошёл(а) в комнату
[23:23:35] begemot_sun вышел(а) из комнаты
[23:28:40] rm вышел(а) из комнаты
[23:39:35] postman_ вышел(а) из комнаты
[23:52:57] begemot_sun вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!