Пользователь: у меня были сервера с Fedora 6 и Fedora 9 (или что-то вроде того), миграции были странным занятием, после этого решил что так дело не пойдёт. Теперь обновляю всё что нужно когда хочется, а не когда "берём и заменяем всё с коробкой". Debian пару раз пробовал использовать на ноуте с liveCD... это конечно боль, но просто потому что не привычная система. Сразу не хватает USE флагов для полного контроля происходящего.
Был один очень хороший совет "Учись делать правильно сразу". Многие вещи не стоит делать на PHP, Python или RoR, какими бы красивыми они не были... по большому счёту сложность Golang видится только тем кто его не изучал в большой степени. Для остальных он прост, понятен и очень хорош в логичности.
Я сам люблю PHP и долгое время считал его в связке с Си идеальным сочитанием... но он устарел, его можно совершенно спокойно заменить. А времени на это нужно месяц-два что бы перестроиться.
Как первый язык Golang можно посоветовать, ибо всегда первыми языками были компилируемые, Си/Си++, Pascal и некоторые другие. PHP плохой пример.
Он уже давно убил PHP и Python вместе взятые... посмотрите на что переписывают основные и высоко-нагруженные системы в PHP проектах действительно стоящие компании. А на кучу студентов пишущих чёрт пойми что смотреть не стоит.
У JS слишком "плохая" асинхронность для серверных задач, а уровень и качество кода системных библиотек node.js желает лучшего... многим это нравится потому что это JS... других причин я не вижу.
Я потихоньку переписываю библиотеки под себя, под задачи. Версия 1.4 очень хорошая, версия 1.5 недавно вышла и обещает быть как минимум не хуже, а потенциально привлекательной и уж точно интересной в 1.6. Сложно найти другой язык программирования который смог бы сделать конкуренцию Golang'у и увеличивающееся количество его упоминаний, статей о нём и библиотек к нему это только подтверждают.
На чём сейчас пишите? Что пишите?:)
Sanes: в тоже время он спрашивает про аргументы "за" и "против", а значит хочет хоть немного узнать что там внутри. А следуя вашей логики ему можно продать что угодно, что не очень хорошо.
Не такая уж и хорошая документация. Очень много файлов и очень жёсткий дебаг... Дописать модуль с нуля без выдирания волос можно только если потратить на эту систему годы. В общем цена входа слишком не красивая.
Вам всё равно придётся писать код для функционала... тут уже не важно какой движок вы выберите, но почти все известные CMS внутри малопроизводительны, сложны в написании дополнительных разделов и так далее... Так что, крепитесь:) Можно посмотреть на движки статических сайтов, а всё что связанно с динамикой дописать самим. Это будет один из самых производительных вариантов.
Мало что в таком примере можно сэкономить в памяти при использовании указателей. Тут сильно зависит от того какой конкурентный паттерн при работе с данными используется... Так же нужно не забывать что GB очень плохо относится к поинтерам... но на значениях меньше сотен миллионов поинтеров особо не заметно.
Как вариант использовать одно поле и расширять его по мере необходимости, www.mysql.ru/docs/man/SET.html , при этом использовать 0/1 не удачный подход ещё и тем что а вдруг кто-то запишет туда не 1 а скажем 101... что это будет значить? Кто это будет документировать и кто потом будет обновлять весь код и проверять что ничего не сломалось?:) Не говоря уже о том что числа стоит хранить в числах, а не в строках:)
При этом да, достали пользователя - положили его в память, данные у вас уже есть, ходить в базу больше не нужно по определению. По этому особо не важно сколько у вас уйдёт запросов на вытаскивание списка прав, другой вопрос как много вы хотите сделать запросов для получения по сути одного поля...
P.S. godoc.com/github.com/user/repositray - отличная генерация справочний информации, главное обращать внимание на входные и выходные параметры, на описание структур...
Вам нужно по большей части смотреть на входные и выходные типы данных. Научиться для этого пользоваться сервисом godoc.com, в языке много аналогий которые быстро усваиваются. Месяц-два и будете как орешки щёлкать. Русской документации и статей так же достаточно много.
FireGM: я не предлагаю отсеивать DDOS ботов на уровне исключительно самого приложения. Вывод по поводу горутин у меня возник после лока с WS Upgrade который локонично отрабатывал только один раз. Надо будет поизучать исходники на предмет этого вопроса в любом случае.
Для защиты от DDOS посоветую добавить в арсенал iptables TARPIT (это к вопросу о том читал ли я что-нибудь про DDOS).