Васильев Виктор
или базу в архиве
Васильев Виктор
или удаленную базу
макс
привет, можете пожалуйста объяснить что значит done <- struct{}{} ? зачем еще один брейс добавлен и что это такое? никак дельного объяснения найти не могу
Васильев Виктор
это все рашается стандартными интерфейсами
Васильев Виктор
Это анонимная структура
Васильев Виктор
обычно ее посылают в канал потмоу что она ничего не весит вообще
Васильев Виктор
но отправляет сигнал в канал
Васильев Виктор
и канал узнает что все закончено и соответственно обрабатывает это
Васильев Виктор
т.е. это невесомый сигнал
макс
ага, понял, спасибо тебе
recoilme
Можно бить на чанки и потом их сращивать
в чанках нет смысла - время тратится на synс файлов а не на саму запись. Ось пишет в буфера - это и есть "чанки". Для решения этой проблемы есть аналог bulk insert - sets, который делает за один sync запись
recoilme
а про интерфейсы я к тому что вдруг я захочу иметь in memory базу?
в слоупоке встроена инмемори база. Ключи без значений - аналог мемкеш но более продвинутый
Васильев Виктор
Чанки в памяти. Тот же кликхаус так делает(Хотя понятное дело что масштабы разные) просто синхронная запись это в принципе такое себе я считаю. Но да ладно это дело задачи
Васильев Виктор
Просто в слоупоке это можно было решить всеголишь реализацией стандартного интерфейса не прикладывая усилий. Тем самым поддержав свою библиотеку всей мощью го.
Васильев Виктор
Т.Е. вообще все в Го смогло бы с ней взаимодействовать и арсширять функционал
recoilme
Чанки в памяти. Тот же кликхаус так делает(Хотя понятное дело что масштабы разные) просто синхронная запись это в принципе такое себе я считаю. Но да ладно это дело задачи
у меня ОЧЕНЬ похже на то как сделан кликхаус. Но в кликхаусе нет апдейта и делейта, а у меня есть. А так - и в кликхаусе и в слоупоке - колумн сторадж по сути. Те на слоупоке можно сделать кликхаус
Васильев Виктор
Те же интерфесы чтениязаписи откроют базе данных неограниченыне возможности просто
Васильев Виктор
Ну как бы у клика их и не должно быть)
Васильев Виктор
А разве у тебя не KV?
recoilme
Те же интерфесы чтениязаписи откроют базе данных неограниченыне возможности просто
не, один файл может быть открыт только одним файлдескриптором и нельзя давать возможность писать в этот файл "со стороны" - если я правильно понял идею. Они не видят измениения друг друга. И смысла в интерфейсе нет получается. У меня KV - но принцип хранения очень близок к кликхаусовскому колумн сторадж.
Васильев Виктор
Не, ты не понял, ща с обеда приду и поясню
Nikita
Ну это по двум причинам. 1 - для простоты имплементации серверов. Над базой есть http сервер - https://github.com/recoilme/slowpoke/blob/master/simpleserver/slowpokesrv.go - и в хендлерах просто прописан, например Set(что-то) Так как Open и прочая магия имплементированны прямо в апи- серверу нет нужды беспокоиться о получении инстанса дб, открытии и прочем. Он просто коммандует set , а уже на стороне апи происходит вся магия. Это побочный эффект от того, что можно на лету создавать файлы и папки вложенные для любых стораджей (вторая причина). В других базах - ты открыл один файл и работаешь с ним - а тут они на лету создаются. Все что остается серверу это закрыть открытые файлы в случае kill / ctrl+c и тп. А возможность создания на лету стораджей - это для гибкости во всем теле. В текущем проекте - тысячи сайтов - и я хочу хранить их аккуратно по папкам, а не в куче.
Из пяти принципов SOLID ты нарушил четыре
Васильев Виктор
@recoilme Ты главное не думай что мы нападаем на твою библиотеку. Мы просто даем советы как она могла бы стать лучше для настоящего использования в реальном (не маленьком) проекте. Просто сейчас она принципиально плохо тестируема, не расширяема, все прибито гвоздями, все зависимости пробрасываются и нельзя внедрить ничего вообще а также она не гибкая
Васильев Виктор
Т.Е, в реальном проекте она не выживет
recoilme
Из пяти принципов SOLID ты нарушил четыре
мне больше нравится KISS - я даже сформулировал для подчиненных - https://github.com/recoilme/freemp/blob/master/PRINCIPS.md - там правда для явы - но основное верно для любого языка
Васильев Виктор
Эти принципы при правильном подходе не противоречат друг другу
Alexander
Код из 100 классов читается сложнее, чем класс с 100 методами нет.
Васильев Виктор
в SOLID написано создавать 1000 классов?
Anonymous
Код из 100 классов читается сложнее, чем класс с 100 методами нет.
Писателя на Java ответ! 😛 А вообще, без примера спорно ))
Alexander
Держи классы большими,а методы короткими. это прямо скажем тоже спорная мудрость
Alexander
работал я с классами >5k строк. ну их нафиг
Васильев Виктор
Что-то я такого не помгню в солид
Alexander
я бы сказал что это даже не рекорд.
Васильев Виктор
Я знаю принцип разделения интерфейса
Васильев Виктор
но это как бы не о том
Alexander
вот работа с репозиторием - толково написана)
Alexander
у каждого программиста есть именная удаленная ветка, в которой он работает, например vadim, dasha ну это не фонтан конечно. имя ветки == таска в трекере или название фичи
Васильев Виктор
Короче как бы СОЛИД не о том
recoilme
что то я холивар породил, простите(
Васильев Виктор
Короче я тебе советую посмотреть серию видосов JustForFunc там есть рассказ о том почему лучше такие библиотеки не делать. Хотя я тебе уже рассказал: плохой дебаг, плохое тестирование, нет гибкости и расширения, нет внедрения зависимостей.
Nikita
Про гит это вообще фейспалм, ребазированием не пользоваться, я чуть фейспалмом нос себе не сломал
Andrey
Никто толком не знает как работает git. Это магия.
Andrey
омг
Andrey
https://habrahabr.ru/post/313890/
Васильев Виктор
Что вы на него набросились. Челок жопу не просиживает. Лучше бы просто спокойно пояснили
Andrey
https://git-scm.com/doc
Alexander
Про гит это вообще фейспалм, ребазированием не пользоваться, я чуть фейспалмом нос себе не сломал
имхо - нормальные правила. дело не в том, хорошо рибейз - или плохо, это вопрос холиварный. хорошо когда явные правила есть. плохо когда их нет и каждый шарашит так, как умеет
andrew
вы опенсорсный проект разрабатываете командой на ставке?
Artem
https://habrahabr.ru/post/313890/
это же девочка писала, ну бывает.. дни такие )
Alexander
Девочка по имени Вадим?
может она из Болгарии ? там Людмил - вполне себе мужское имя
Artem
Девочка по имени Вадим?
это же перевод https://github.com/maryrosecook хотя инфа расходится, может это https://www.linkedin.com/in/maryrosecook/
Alexander
может быть Владимир - женское
Andrey
это же перевод https://github.com/maryrosecook хотя инфа расходится, может это https://www.linkedin.com/in/maryrosecook/
Моя цитата не отсюда. Моя цитата отсюда: https://github.com/recoilme/freemp/blob/master/PRINCIPS.md
Alexander
опять же
Artem
Моя цитата не отсюда. Моя цитата отсюда: https://github.com/recoilme/freemp/blob/master/PRINCIPS.md
ну даже там автор комита <тут было плохое слово>. вот и попутал, а точно Владимир? вроде же Владислав и он из epam, это многое объясняет p.s. я не оскорбляю, а поясняю что меня в заблуждение ввело. просто единственное, что попалось https://github.com/VladyslavKulibaba/Task1 и тестовое в епам. Такой вот неудавшийся ресерч вышел. и вообще цитировал я статью на хабре и говорил о ней, а ее девочка написала и потому она "странная", а для всего остального есть gitflow
Aleksandr
Артем, тебе надо собраться и не говорить глупостей. 1 сутки
recoilme
Я на всякий случай еще раз попрошу прощения если кого задел. Ни в коем случае не хотел никого обидеть. Просто так слово за слово перешли на то как надо писать код, а оттуда как надо коммитить. Эти принципы я формулировал для своей команды. Свой код я пишу придерживаясь своих принципов (да и то не всегда). Но это не значит что я готов за них драться. Пишите как вам нравится) Ребейзите наздоровье, покрывайте все интерфейсами. Я не против ни в коем случае. Всем спасибо за отзывы, было увлекательно. Часть я учел, спасибо. Если что по базе - пишите в личку, я пока выйду чтоб не провоцировать никого.
Васильев Виктор
Вот это вы шакалы люди
Васильев Виктор
серьезно
Aleksandr
ужас
Alexander
ну вот, взяли затравили человека.
recoilme
да все нормально, критика это хорошо
Васильев Виктор
Это была не критика
recoilme
я выйду не потому что не готов к критике/советам, у меня просто работы много , простите
Васильев Виктор
Это люди шакалы. Люди просто видать чем-то неудоволетворены в жизни и хотятт самоутвердится
Aleksandr
Я на всякий случай еще раз попрошу прощения если кого задел. Ни в коем случае не хотел никого обидеть. Просто так слово за слово перешли на то как надо писать код, а оттуда как надо коммитить. Эти принципы я формулировал для своей команды. Свой код я пишу придерживаясь своих принципов (да и то не всегда). Но это не значит что я готов за них драться. Пишите как вам нравится) Ребейзите наздоровье, покрывайте все интерфейсами. Я не против ни в коем случае. Всем спасибо за отзывы, было увлекательно. Часть я учел, спасибо. Если что по базе - пишите в личку, я пока выйду чтоб не провоцировать никого.
Вадим, просто тут 99% людей никогда не руководили и не будут руководить командой, поэтому не видят разницы между правилами для команды и знаниями/взглядами на программирование. Не обессудь) а пошакалить - ну сам понимаешь, это у программистов за всегда готовы.
Pawel
Я примерно могу понять зачем нужен nosql сервер - чтобы не страдать от распределённых транзакций. Но вот нафига ВСТРОЕННОЕ nosql хранилище, не втыкаю в упор. Для встроенных хранилищ есть прекрасный sqlite, он значительно быстрее чем boltdb, к нему есть хороший тулинг - зогчем что-то ещё придумывать?
Daniel
но он не pure go
Pawel
да и фиг бы с ним, ни каких проблем же не создаёт
Daniel
еще как создает
Daniel
для начала - прощай, кроскомпиляция
Daniel
не то, что под конкретную платформу, под конкретную версию конкретного дистрибутива надо собирать, в общем случае