Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Как обрезать блок по заданной форме

#html #css #svg #inkscape


Есть такой дизайн.



Внизу блока вместо прямой границы нарисован овал. Как его сделать?
    


Ответы

Ответ 1



Если вам не нужно, реализовывать слайдер, а достаточно добавить подобного рода статический блок, то просто вырежьте картинку и сохраните в формате png, а после добавьте в качестве фона. Если же необходимо, чтобы слайдер работал, то можете с помощью position: absolute; наложить сверху белое изображение закругленной формы

Ответ 2



Картинку можно обрезать по криволинейной форме с помощью clip-path или mask или pattern. Но во всех случаях нужен path для криволинейной формы. Для того, чтобы получить этот криволинейный необходимо загрузить картинку в векторный редактор и нанести узловые точки с помощью инструмента, - Рисовать кривые Безье (1. на рисунке) Изменить тип узлов на автоматически сглаженные цифра 3 на рисунке и передвигая, уменьшая или увеличивая длину рычагов (4), добиться полного совпадения кривой с заданной формой Сохранить файл в формате SVG Оптимизировать файл (будет убрана лишняя информация Inkscape) с помощью SVG-EDITOR Скопировать формулу path Далее будем использовать этот для обрезки изображения по заданной форме .container { width:100%; height:100%; background-color:#7AA3A3; }
Приложение полностью адаптивно и работает во всех браузерах

Математические скобки [закрыт]

#javascript #html #jquery


        
             
                
                    
                        
                            Closed. This question is off-topic. It is not currently
accepting answers.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Want to improve this question? Update the question so
it's on-topic for Stack Overflow на русском.
                        
                        Closed 8 месяцев назад.
                                                                                
           
                
        
Как изобразить на странице такие символы как на скриншоте?



Имеется ввиду фигурная скобка и расположение последующих за ней элементов.
    


Ответы

Ответ 1



Так годится? Раскрасишь сам. .row { display: flex; align-items: center; line-height: 2em; text-align: center; } div { border-radius: .5em; } .badge { min-width: 2em; background: silver; margin: .25em; } .lbrace { border-left: 1px solid; padding-left: .25em; margin-left: .5em; position: relative; display: flex; flex-direction: column; align-items: flex-start; } .lbrace:before { content: ""; width: .5em; height: 0; border-top: 1px solid; position: absolute; right: 100%; top: 0; bottom: 0; margin: auto; }
×1.5
В
Ш×2
П
Версия с более красивой скобкой (через фон, следующая лучше): .row { display: flex; align-items: center; line-height: 2em; text-align: center; } div { border-radius: .5em; } .badge { min-width: 2em; background: silver; margin: .25em; } .lbrace { border: 1px solid transparent; border-left-color: black; border-right-color: white; background: linear-gradient(to right, white, white), linear-gradient(to right, black .75em, white .75em); background-clip: padding-box, border-box; padding-left: .25em; margin-left: .5em; position: relative; display: flex; flex-direction: column; align-items: flex-start; } .lbrace:before { content: ""; width: .5em; height: 0; border-top: 1px solid; position: absolute; right: 100%; top: 0; bottom: 0; margin: auto; }
×1.5
В
Ш×2
П
И ещё одна версия: .row { display: flex; align-items: center; line-height: 2em; text-align: center; } div { border-radius: .5em; } .badge { min-width: 2em; background: silver; margin: .25em; } .lbrace { border: 1px solid transparent; background-clip: padding-box, border-box; padding-left: .25em; margin-left: .5em; position: relative; display: flex; flex-direction: column; align-items: flex-start; } .lbrace:before { content: ""; width: .5em; height: 0; border-top: 1px solid; position: absolute; right: 100%; top: 0; bottom: 0; margin: auto; } .lbrace:after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: .5em; border: 1px solid; border-radius: .5em 0 0 .5em; border-right: none; }
×1.5
В
Ш×2
П


Ответ 2



* { box-sizing: border-box; font-family: sans-serif; } .wrapper { padding: 7px; margin: 50px 0 0 80px; position: relative; } .wrapper:before { content: ''; display: block; position: absolute; width: 10px; border: 2px solid gray; border-right: 0; border-radius: 5px 0 0 5px; top: 0; bottom: 0; left: 0; } .wrapper:after { content: ''; position: absolute; display: block; width: 10px; height: 0; border: 1px solid gray; left: -12px; top: 0; bottom: 0; margin: auto; } .v, .p, .sh, .poltora { text-align: center; font-size: 22px; padding-top: 8px; } .v, .p { width: 40px; height: 40px; border-radius: 5px; color: white; } .v { background-color: #231f20; display: inline-block; margin-bottom: 10px; } .sh { display: inline-block; background-color: #d1d6d9; height: 40px; width: 55px; vertical-align: top; border-radius: 0 0 5px 5px; } .p { background-color: #be2027; } .poltora { position: absolute; height: 40px; width: 55px; border-radius: 5px; background-color: #f9bf5a; top: 0; bottom: 0; margin: auto; left: -70px; }
В
Шх2
П
x1.5


Ответ 3



CSS Вариант .wrapper{ width: 200px; display: flex; flex-wrap: wrap; } .content { height: 80px; width: 80px; display: flex; flex-wrap: wrap; background-color:wheat; border-radius:5px; } .brace-l, .brace-r { width: 24px; display: flex; flex-wrap: wrap; } .brace-l div, .brace-r div { width: 10px; height: 20px; } .brace-l div:nth-child(2), .brace-r div:nth-child(6) { border-top-left-radius: 5px; border-left: 1px solid; } .brace-l div:nth-child(3), .brace-r div:nth-child(7) { border-bottom-right-radius: 5px; border-right: 1px solid; } .brace-l div:nth-child(5), .brace-r div:nth-child(1) { border-top-right-radius: 5px; border-right: 1px solid; } .brace-l div:nth-child(8), .brace-r div:nth-child(4){ border-bottom-left-radius: 5px; border-left: 1px solid; }
Тот же вариант, только с программно созданным css document.querySelectorAll('.brace').forEach(el => { el.innerHTML = Array(8).fill(0).map(() => '
').join(''); }); let s = document.createElement('style'); s.innerHTML = [[2,6],[5,1],[8,4],[3,7]].map((e,i) => `.brace.l div:nth-child(${e[0]}), .brace.r div:nth-child(${e[1]}) { border-${i<2 ? 'top' : 'bottom'}-${i%2 ? 'right' : 'left'}-radius: 5px; border-${i%2 ? 'right' : 'left'}: 1px solid; }`).join('\n'); document.head.append(s); .brace { width: 24px; display: flex; flex-wrap: wrap; } .brace div { width: 10px; height: 20px; }


Выгрузка данных в Excel в php

#export #php #excel


Здравствуйте уважаемые программисты. Передо мной стоит задача автоматизации отчетности
в Excel. На первый взгляд около 200 отчетов.
Смотрел в интернете классы для выгрузки, но с помощью них очень долго и "напряжно"
делать. Есть ли какая-нибудь универсальная система, может класс, поддерживающий подобие
шаблонов? 
Еще хотелось бы без ком технологии, потому как виндус сервер не дают на работе. 
Жду Ваших советов. Рассмотрю любой вариант.     


Ответы

Ответ 1



Вот тут посмотри http://exls.ru Кратко: поддерживает шаблоны; выгружает в форматы .xls, .xls.gz, .zip; есть возможность расширять форматы; программировать на php не нужно; поддерживает входные параметры; поддерживает модули (например: выгрузка заголовков почты в excel); пойдет на любом хостинге. Я принимал участие в написании данной системы.

Ответ 2



Есть библиотека PhpExcel, довольно хорошая, сам ей пользовался для такой задачи. Много возможностей (стили, формулы, валидация и т.д.). Объектно-ориентированная. Единственный минус - очень прожорливая для документов с большим количеством стилей. Но проблема решается шаблонами (сам набиваешь в Excel пустой документ со стилями, формулами и т.д.) А php только забивает данными (для этого кроме writer-а имеется reader). Есть альтернативный вариант Spreadsheet Excel Writer, он полностью бинарный, поэтому не такой прожорливый по памяти. Но соответственно урезаны возможности. Кроме того затруднена работа с Office 2007 и дальше. Кстати PhpExcel writer5 (для генерации xls (не xlsx) документов, написан на основе Spreadsheet Writer-а. Так что рекомендую заюзать первую либу и иметь красочные отчёты, чем разбираться со второй.

Ответ 3



Я тупо делаю так: ТУТ СТРОИМ ТАБЛИЦУ...
Это мой вариант. В нем кстати есть категории, которые раскрываются при нажатии "+". MS 2007 открывает без проблем.

Ответ 4



По поводу библиотеки на php которая работает с шаблонами ничего сказать не могу, но есть библиотека PHPExcel, она работает на принципе разметки. Не знаю, стоит ли ее использовать с учетом того, что вам нужно сделать 200 отчетов (слишком не простая задача), но для обычной выгрузки в excel на php она подходит более чем. С помощью нее можно задавать формат ячейкам, работать с формулами, применять оформление и так далее. Статью, с примером можно посмотреть здесь.

Стоит ли мобильным разработчикам опасаться веб-разработчиков [закрыт]

#mobile #веб_программирование


        
             
                
                    
                        
                            Closed. This question is opinion-based. It is not currently
accepting answers.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Want to improve this question? Update the question so
it can be answered with facts and citations by editing this post.
                        
                        Closed 3 года назад.
                                                                                
           
                
        
Сейчас не секрет, что в мобильной сфере набирают обороты фрэймворки на Html5+js,
в частности есть платформы где эти фрэймворки используются официально (Blackberry,
WebOS, windows 8) а в других реализована отличная поддержка (PhoneGap). Ну и + сам
мобильный веб.
Заказчики хотят чтобы приложение работало на многих платформах, поэтому им выгоднее,
чтобы оно делалось именно вышеуказанным методом. Это значит, что рынок будет расти,
и обычные веб-разрабы/верстальщики, почуяв это, будут постепенно захватывать данную
сферу, смещая разработчиков java/c#/obj-c. Что думает публика по этому поводу?    


Ответы

Ответ 1



Мне кажется, что можно будет начать об этом думать, когда произойдет следующая совокупность событий: Веб-приложения на HTML5 начнут работать с такой же степенью детерминированности, как и обычные Java / C# / Objective C приложения. Появится хотя бы один прецедент использования HTML5 для создания основного клиента, скажем, для какого-нибудь сервиса типа Facebook (насколько я знаю, пока таких нет, хотя, разумеется, могу заблуждаться). Поделки непромышленного масштаба из разряда "P2P клиент на Haskell" не в счет. Update: Строго доказывать здесь что-либо сложно, поскольку сфера IT и ее рынок вакансий по своей непредсказуемости сравнимы с биржевыми рынками. Естественно, я не обладаю достаточной компетенцией в вопросах их аналитики, но могу попробовать "отбиться" следующими тезисами: Кроссплатформенность веб-приложений - это такой же миф, как, например, кроссплатформенность приложений на Java или Qt. Да, платформа позволяет, но сделать универсальное приложение, которое по своей степени продуманности, использования возможностей конкретной платформы и уровню когнитивного диссонанса у пользователя будет действительно кроссплатформенным - это архисложная задача. Естественно, что это же относится к HTML5, а значит сама по себе концепция универсальной платформы для приложений начинает терять свой шарм. Про использование аппаратных возможностей девайсов и сложность написания действительно безопасного sandbox'a вам уже ответил @Dex. Если бы перспективность использования HTML5 для таких целей была бы неоспоримой, то ее бы использовали в промышленных масштабах. Но никто этого не делает, потому что бессмысленно откидывать имеющуюся кодовую базу, набор интеграционных solution'ов, информацию обо всех сложностях, возникших при разработке и весь накопленный фидбек от пользователей просто ради того, чтобы опробовать новую технологию. Это же переписывание приложения с нуля! А те компании, которые только задумываются над созданием мобильных клиентов для своих сервисов, ориентируются на уже имеющиеся решения других компаний и вряд ли будут экспериментировать из-за страха нарваться на негативный фидбек ("Я не понял, что это за фигня, где у вас обычное приложение?") и растерять и без того не слишком большое число пользователей. Может быть, конечно, использование HTML5 для таких вещей и не за горами, но точно не в ближайшем будущем - для этого нужен существенный shift парадигмы. Почему, как вы думаете, на Youtube стандартный плеер - не HTML5? Продолжая разговор про Youtube - попробуйте, например, написать им письмо и спросить: "Как так получилось, что ваш клиент для Android не на HTML5????!?! Это же так круто и прогрессивно!" Думаю, что ответ будет схож (если он вообще будет :) с ответом тем студентам, которые приходят в gamedev и начинают толкать свои идеи про переписывание AI с помощью нейронных сетей. Update2: http://habrahabr.ru/post/151337/

Ответ 2



Вопрос конечно интересный... Мне кажется опасаться стоит ровно в той же мере насколько стоит опасаться десктопным приложениям "наступления" веб подобных приложений. Ну например насколько стоит опасаться разработчикам игр вроде Call Of Duty наступления flash игр? Смешно? В общем, я думаю, что в ближайшие 5-6 лет опасаться ничего не надо.

Ответ 3



Опасаться очевидного глупо, нужно учиться... Это с одной стороны, а с другой html5+js - тема не менее сложная и интересная, чем java/c#/obj-c, и, чтобы добиться в ней успеха, нужно очень много знать и уметь. К тому же технология html5 будет окончательно оформлена лет через пять, а перспективы java/c#/obj-c пока очень сложно ограничивать сроком пять или даже десять лет.

Для чего нужен github?

#github


Имею опыт с системами контроля версий, гитхаб нужен для совместной разработки чего-либо.
Но откуда такая популярность, какой профит от этого? Очень много кто этим пользуется,
какие возможности я упускаю? Буду очень благодарен, тем, кто поможет разобраться.    


Ответы

Ответ 1



Github стал популярен за счет того, что имел обширные возможности для социального взаимодействия, фактически — социальная сеть для разработки open source приложений. Там действительно очень удобный инструментарий для правки open source проектов — форкнулся, сделал изменения, сделал pull-request и твой коммит уже в основной ветке. Ну а также мощный и бесплатный инструментарий all-in-one для разработки — git как VCS, вики, issue-трекер. Ну вот по этой уже были аналоги — тот же Google Code.

Ответ 2



Я расскажу вам свою историю: на работе используется Jenkins в качестве СIT. Исторически сложилось, что приходится использовать проприетарную систему контроля версий Accurev. Плагин к Дженкинсу есть, но я нашел в нем багу. Другие разработчики в моей компании на этот плагин забили и начали писать питоновские скрипты. Багу я пофиксил и отослал в гитхаб. Как раз тут и произошла проблема - отвественные люди за плагин не выходят на связь( Пуллреквесты висят мертвым грузом уже более полугода у нескольких человек. Сейчас, опять же по работе, ковыряю проект Sikuli. Отзывчивое комьюнити, хорошая документация, C++/Java/Jython используются в разработке. Так как мне нужны только часть этого Sikuli, я обрезаю все не нужное мне и интегрирую в наш проект. Не хочу даже думать, сколько бы времени у меня ушло сделать хоть сколько-нибудь подобное на это.

Как обнулить историю Git?

#git #git_commit #git_remote #git_push


Ситуация такая: на сервере удалил репозиторий и создал заново, с локального теперь
нужно сделать push, но если сделаю, то всю историю коммитов запишет на сервер.

Как начать с нуля?
    


Ответы

Ответ 1



Все эти инструкции верны, если на удаленном сервере у вас пусто, а локально - есть проект и репозиторий Git с историей, которую вы хотите удалить. Что будет потеряно безвозвратно Собственно, история. Вы точно хотите ее потерять? Ради нее весь Git и придумывался. Весь код в не-слитых (unmerged) ветках. Весь код в orphaned ветках. Метки (tags) Быстрый способ Найдите первый коммит в ветке, запомните его sha1. git log --oneline Переключитесь на тот коммит, который хотите сохранить в итоге. git checkout master Теперь используем git reset --soft чтобы сделать из всей истории один коммит (подробнее - пункт 4.1: Как вернуться (откатиться) к более раннему коммиту? ). git reset --soft git commit -m'слил историю в один коммит' Долгий способ Сделайте бэкап локального репозитория. Можно запушить на резервный удаленный репозиторий, а можно просто взять и переместить папку .git в другое место. mkdir ../git-backup mv .git ../git-backup/.git Если не переместили локально, а забэкапили куда-то еще: удаляем папку. rm -Rf .git Теперь заново инициализируем репозиторий: git init Добавляем все файлы в рабочей области и делаем коммит. git add . git commit -m'начал с нуля' Когда все готово Подключаем удаленный репозиторий и заливаем на него изменения: git remote add origin git push -u origin --all

Ответ 2



Сделать clone, скопировать файлы (без .git), сделать push! Нет? ))

Ответ 3



Эта команда делает совсем другое: стирает всю историю до commitId и возвращает рабочую область к его состоянию. При этом вы потеряете данные более поздних коммитов. git reset --hard commitId #УДАЛЯЕТ ИСТОРИЮ GIT

Go для масштабного веб-проекта

#golang #nosql #sql


Здравствуйте. Хоть у меня вопрос по го, вкратце расскажу свой путь разработчика.
Да, и еще, чтобы быть полностью откровенным упомяну: мне 16 лет. Программированием
я заинтересовался в 9 лет, и с тех пор не могу оторваться. Дело в том, что я не из
той "школоты", которые клипают один за одним сайты на вордпрессе, или пишут 88код на
php + html. Я прошел такой путь: pascal(месяца три, помог мне с основами программирования)
-> html, css, php -> c(три года назад) -> c++(спустя два месяца после начала обучения
си решил, что целесообразнее будет учить плюсы) -> java (после того, как постиг основы
ооп; в джаве после того, как через месяцев 7 захотелось познакомиться с EE, сразу перехотелось
вообще учить дальше; оно было очень громоздкое) -> php -> python (плюс немного Django)
-> php(с питоном дела шли еще не очень хорошо, а понадобилось написать систему тестирования
на тысячи две с половиной строк кода для школы) -> RoR(фреймворк потрясающий, но перестал
его рассматривать так как: проблемы с производительностью, он популярен сейчас, а такое
не будет продолжаться вечно, а мне еще учится) -> Play framework + Scala(все шло очень
хорошо, еще один веб проект, пока не дошло до углубления в скалу; хоть язык мне и понравился,
но: он слишком сложный - это раз, в нем слишком много возможностей, приходится выбирать,
не знаешь какая лучше; проблемы с concurrency по сравнению с го) -> и вот, наконец,
го. Он мне сразу понравился. 
И вот, после двух с половиной месяцев изучения го у меня вопрос: я хочу написать
масштабный веб проект. я буду его писать не в одиночку, но за бэкенд буду отвечать
только я. Во всяком случае, на первых порах. Проект совершенно новый, аналогов ему
нету. Не буду раскрывать идею, скажу только что будут частые запросы базы данных. Информация,
во всяком случае поначалу, будет только текстовая, и немного картинок. Но будет много
запросов к базе данных. Я бы мог написать его на пхп намного быстрее чем на го, но
я хочу не просто написать сайт, я хочу построить именно масштабный веб проект, будто
его будут использовать миллионы людей (хотя так вряд ли произойдет; но зато будет опыт).
Хочу разделить веб приложения на 4 слоя, ну там фронт энд, application logic , back
end, datastorage. Вопрос: могу ли я использовать как серверный язык для такого предназначения
Golang? Даст ли он мне прекрасную производительность, и не будет ли проблем с отсутствием
библиотек или возможностей языка, что приведет к невозможности продолжения написания
проекта?
Какие советы можете дать мне по строению высоконагруженого сервиса? 
И, какую лучше использовать бд: Sql или nosql. В курсе что на хэшход использовали
postgresql, но мало ли. Есть очень неплохие драйвера и для nosql, к примеру Mgo , и
для редиса видел.
Мне очень важно знать ваше мнение.    


Ответы

Ответ 1



могу ли я использовать как серверный язык для такого предназначения Golang? Еще как можете, Go для этого предназначен. Даст ли он мне прекрасную производительность Это только от вас зависит, как напишите так и "поплывет". не будет ли проблем с отсутствием библиотек или возможностей языка Даже затрудняюсь предположить, что-же такое вам может понадобится чего нельзя реализовать в Go? Но вот небольшая подборочка, вполне возможно вам что-то из этого пригодится. https://github.com/bolknote/go-gd https://github.com/go-sql-driver/mysql https://code.google.com/p/go-charset/ https://github.com/andelf/go-curl

Ответ 2



Гм. Странные у Вас выводы. Scala - довольно прост, вообще говоря. RoR - не тормозной, вообще говоря, на нем довольно большие сайты работают. Вы напрасно там быстро прыгаете. Считается, что для того, чтобы понять какой-то инструмент программирования (язык, фреймворк и пр.) как следует - нужно на нем попрограммировать 2 года. Ну при большом таланте - год-полтора. А не три месяца. Но это ваше личное дело, не буду осуждать. Вы видимо, ищите "серебряную пулю"? Волшебный инструмент, который круче других на голову? Таких нет, иначе все другие программисты давно на него бы перешли. Если проект большой, то я предложил бы базироваться на развитом web-фреймворке, не сковывающем особо программиста, например на Pyramid ( http://docs.pylonsproject.org/en/latest/docs/pyramid.html ). Фреймворк поддержит Вас и сэкономит кучу времени. Если речь идет о частых запросах к базе данных, то скорость работы от самого языка программирования бэкэнда не зависит. Если Вы поступите по умному, напишете типичную задачку из своего проекта в виде отдельного теста и проведете замер, то поймете, что процентов 95 (к примеру, может больше, может меньше, но - значительно) времени занимает работа самой базы данных, лежащая за пределами вашего бэкэнда и, следовательно, за пределами языка программирования. По сути скорость зависит от того, как именно Вы работаете с базой данных, как оптимизирована ваша программа под базу данных. Даже простейший банальный кэш на уровне бэкэнда поможет поднять производительность, скорее всего. Более того, даже выбор правильной базы данных под особенности ваших данных позволит поднять производительность до небес. Я бы отсоветовал Вам Go. К нему не так много серьезных фреймворков пока, не так много документации. А его особенности проявляют себя большим плюсом в том случае, если у Вас сложные алгоритмы на стороне бэкэнда, а не работа с базой данных. С Го многое придется писать самому, придумывать самому. Это очень сложно и получить неэффективную систему будет очень просто. Гораздо эффективнее воспользоваться готовыми инструментами, уже имеющимися для других языков. Эти инструменты придется изучить изнутри, полазить в исходном коде, это будет очень полезно для повышения вашей квалификации. Да и время сэкономит. Го-ланг - дает слишком много свободы, и с ним Вы получите ту же проблему, о которой писали выше: "в нем слишком много возможностей, приходится выбирать, не знаешь какая лучше". Кроме того, Ваш выбор усугубится тем, что готовых развитых и отлаженных библиотек и фреймворков - мало. Любому, кто даст конкретный ответ на это, можете плюнуть прямо в глаза: "Какие советы можете дать мне по строению высоконагруженого сервиса? И, какую лучше использовать бд: Sql или nosql. В курсе что на хэшход использовали postgresql, но мало ли. Есть очень неплохие драйвера и для nosql, к примеру Mgo , и для редиса видел." Ибо правильный ответ очень сильно зависит от конкретной архитектуры данных и от конкретной архитектуры системы. Правильные ответы могут быть в каждом конкретном случае очень противоположенные. Для того, чтобы более-менее правильно выбрать базу данных следует проанализировать что там за данные. Что чаще происходит - запись или чтение, в каких масштабах, простые или сложные структуры хранятся, мешают ли пользователи друг другу (один пишет то же, что в это время может читать другой), простые или сложные критерии выборок и куча еще много чего. В общем случае самым лучшим решением для снятия нагрузки с сервера является развитый механизм кэширования и статических (заранее сгенерированных) страниц. Но ни язык программирования ни база данных Вам в этом не поможет. Это только алгоритмы, которые Вы должны придумать самостоятельно под вашу конкретную ситуацию.

Ответ 3



Golang - годная вещь для разработки под web. Всё, что в других языках (веб сервера, печеньки, роутинг, и т.п.) реализовано в виде фреймворков и библиотек, в Golang есть из коробки. Язык очень простой, код получается предельно чистым и понятным. Могу порекомендовать Revel framework (в скором времени ожидается релиз), хотя и предполагаю, что ТС предпочтёт свой велосипед. Тем не менее. Revel - вещь годная. Не будет необходимости заниматься архитектурой базовых вещей (есть, по крайней мере, VC от MVC -- модель нужно притаскивать свою), есть возможность писать модульно, переопределять своими модулями (aka фильтрами) default логику базовых компонентов, да и быстрее на порядок и приятнее, чем свой велосипед (ибо позволяет сконцентрироваться на непосредственно решении задачи, нежели шашечках). А кроме того, нужно посетить баг трекер проекта, глянуть на количество issues (открытых и закрытых), людей принимающих участие в разработке (бессменный Rob & co). Колоссальное количество ресурсов, совместных усилий, общих размышлений и обсуждений. К чему я клоню? Работа одного над тем же самым будет выглядеть убогим подобием. В виде модуля в master ветке с недавних пор лежит компонент для работы с БД, поддерживаются: sqlite, mysql и postgres. В качестве ORM (хотя это не совсем ORM в классическом понимании) можно использовать gorp. Или его форк -- modl. Для примера использования первого - см. проект booking в репозитории revel, директория examples. Для любителей MongoDB г-н Jeff написал модуль для интеграции Revel с этой БД, называется (неожиданно) -- revmgo. Как образец использования могу порекомендовать приложение bloggo от этого же автора на github'е. Использовать можно что угодно, зависит от задач. Я в процессе реализации своего сервиса на Revel пришёл в выводу, что MongoDB - это, наверное, круто (так, по крайней мере, было, когда приходилось работать с Node.js), однако, Postgres решает поставленную задачу проще. Приложение было переписано. Узким горлышком в веб проектах, как правило, является БД. Однако, на этапе, когда имеется лишь идея проекта, производительность абсолютно не важна. В случае успешного проекта, к этому можно всегда вернуться, решить проблему. Кроме того, Revel включает, например, стандартный модуль кеширования: его можно использовать для временного хранения информации, которую долго доставать из базы при каждом запросе (по умолчанию для хранения используется RAM, однако, для этого легко может быть преспособлен кластер memcached или redis; возможность предусмотрена из коробки). Итак, проблемы с отсутствием библиотек - маловероятны. Язык статически типизируемый, компилируемый. Производительность ожидается высокой, потребление памяти - небольшим. На простроении высоконагруженного сервиса в вакууме фокусироваться не нужно. Лучше сервис, который просто работает, чем тот, который работает на несколько милисекунд быстрее, но только в теории ибо его ещё нет.

Ответ 4



Golang для вашего проекта подойдет отлично. Как раз для подобного и разрабатывался. Лучше использовать MognoDb, есть отличный драйвер для Go - mgo.

Ответ 5



Если есть опасения что не хватит библиотек, то уверяю, их уйма. Регистрируйся на github и bitbucket и вперёд, при поиске выбирай язык GO и на любой вопрос будут разработки и либы :) У нас в проекте в осномном mysql использовался, я сам знаю 5 библиотек под него. Сейчас потребовался потгрес, с ходу нашлось три библиотеки. Даже apache cassandra, казалось бы экзотика, но либа уже написана и прекрасно работает...