Мозаичный форум  

Вернуться   Мозаичный форум > О мире > Цифровые технологии, программирование и сайтостроительство
Галерея Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Цифровые технологии, программирование и сайтостроительство Полупрофессиональный подраздел. Подробное описание раздела находится в прикреплённой теме.

Ответ
 
Опции темы
Старый 29.09.2009, 01:36   #1
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
Руби с рельсами. Мелочи и вкусности

руби (ruby) эт такой язык, да.
а рельсы (rails) эт такой фрэймворк на таком языке. На ём сайты рисуют.
Да, чтоб не пугать сразу - рельсы, они не только для вебизмов предназначены. Унутря у них неонка есть, вумные люди новичков пужать любят аббревиатурой, ага. Не буду нарушать традицию - неонку зовут ORM. Ну и - удобная система встроенных задач, возможность почти на лету менять структуру базы данных - позволяют делать числодробилковые бэкэндовые прикладухи в достаточно удобном окружении.
Так, с введением фсё, выведение позжа.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 29.09.2009, 06:11   #2
Виктор
Мохнатый Красношёрстный
 
Аватар для Виктор
 
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
Виктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастер
ORM упомянул, а REST фафсем вабыл, да-а-а?

Меня по осени с руби познакомили, очень и очень неплоха вещь. Правда не без недостатков, т.к. нагружает сервер нехило и документашка пока далека от полноты доков того же php или java.

Позже один товарищ -- питонофил, рассказал, что есть питон на рельсах. Всё хочу поглядеть.
__________________
Хрю-Кхе-Кхе
Обитающий в ЖЖ: http://victor-zagorski.livejournal.com
Виктор вне форума   Ответить с цитированием
Старый 29.09.2009, 12:35   #3
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
А куда спешить т? до рестовских контроллеров сугубо посля мвц дойти можно, не раньше.
а, ну и да. про питон.
Считаю - язык, использующий фрагменты оформления - отступы - в качестве синтаксиса - должен лежать на помойке рядышком с остальными брэйнфак языками, занимая место прям перед sendmail.cf. Прям перед - только потому, шо конфиг шлимыла так написан по ламерству автора, а питон явно с диверсионными целями писали.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 29.09.2009, 14:27   #4
manuscriptum
работаем
 
Регистрация: 02.09.2009
Сообщений: 61
manuscriptum обретает свой цвет
Цитата:
Сообщение от Виктор Посмотреть сообщение
ORM упомянул, а REST фафсем вабыл, да-а-а?

Меня по осени с руби познакомили, очень и очень неплоха вещь. Правда не без недостатков, т.к. нагружает сервер нехило и документашка пока далека от полноты доков того же php или java.

Позже один товарищ -- питонофил, рассказал, что есть питон на рельсах. Всё хочу поглядеть.

Питон на рельсах (как бы на рельсах) есть и зовут его Django.
И на данный момент он кстати наиболее живо развивается.
И работает он быстрее рельсов.
Конечно он отличается от рельсов существенно, и по простоте разработки ничуть рельсам не уступает.
На джанге кстати, сделан один из нагруженных проектов яндекса
kuda.yandex.ru

Руби меня впечатляет - очень гибкий дизайн языка, приятно работать, но есть одно но. Руби - богатый на синонимы язык (это его принцип наименьшего удивления) и это хорошо для одиночки, но плохо для командной разработки, ибо у каждого свои тараканы в голове и свой вкус и читать чужой код скажем так слегка непривычно. Кроме того, одни и те же конструкции-синонимы работают с разной скоростью (а разница местами ощутимая). Таким образом с точки зрения оптимизации, требуется выбрать ту конструкцию языка Руби, которая работает быстрее. Это одним махом уничтожает прелесть разнообразия синонимичных конструкций. Все равно придется из десятка способов построения того же цикла выбрать только один (самый быстрый) и стараться использовать его, если важна скорость исполнения.
У питона подход диаметрально противоположный к руби. Всегда должен быть лучший способ сделать что-то. По этой причине синонимов среди языковых конструкций значительно меньше. Однако благодаря этому на свет появляется довольно неплохо оптимизированный байт-код. А поскольку этот байт-код еще и сохраняется в отдельном файле, то со второго запуска скрипт работает уже без траты времени на компиляцию. Руби активно работает над тем, чтобы сделать так же, но и питон не стоит на месте. У питона есть psyco который делает его еще быстрее, местами соизмеримым со скоростью ява-машины.
Сложный синтаксис Руби требует больше времени на поддержку, поиск багов, ресурсов на пред-компиляцию скрипта в байт-код.

Так что при всей красоте Руби, и его рельсов, решения на питоне и джанго в частности выглядят в долгосрочной перспективе чуток поинтересней
manuscriptum вне форума   Ответить с цитированием
Старый 29.09.2009, 15:46   #5
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
гг
Я таки кинусь кодом. хотя и рано.
book.pages.count == "select count(*) from pages where pages.book_id = #{book.id}"
book.pages.length - всегда равно количеству элементов в коллекции book.pages, которая вытягивается из базы выражением "select from pages where pages.book_id = #{book.id}"
book.pages.size равнозначно предыдущему - если в модели book нет pages_count. если есть - количество страниц берется оттуда.
Вот и все синонимы.
В принципе - вот такие тонкости я и хочу в теме показывать.

ps
И да. Не надо рассказывать о сложностях ковырянья в чужом коде человеку, ежедневно читающему-правящему чужой код. Команда маленькая, всего пять программистов, ага. И сотня коммитов в день - простите - попроектно статистику не скажу, svn.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 29.09.2009, 17:43   #6
Виктор
Мохнатый Красношёрстный
 
Аватар для Виктор
 
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
Виктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастер
Цитата:
Сообщение от Afa Посмотреть сообщение
А куда спешить т? до рестовских контроллеров сугубо посля мвц дойти можно, не раньше.
а, ну и да. про питон.
Считаю - язык, использующий фрагменты оформления - отступы - в качестве синтаксиса - должен лежать на помойке рядышком с остальными брэйнфак языками, занимая место прям перед sendmail.cf. Прям перед - только потому, шо конфиг шлимыла так написан по ламерству автора, а питон явно с диверсионными целями писали.
Как сказать. Язык обязывает явно оформлять блоки. Я регулярно матюгаюсь на народ, который блоки отступами не оформляет, а тут зашито в синтаксис языка.
__________________
Хрю-Кхе-Кхе
Обитающий в ЖЖ: http://victor-zagorski.livejournal.com
Виктор вне форума   Ответить с цитированием
Старый 29.09.2009, 19:19   #7
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
Реальная ситуация.
У меня таб = 2 пробела. Мне так удобно. У знакомого - 4 пробела. Исходник со смешанными( табы/спэйсы ) отступами приполз ко мне. После сохранения - модуль подох. Долго искали ошибку, ага.

Отступы - это оформление. И исходник перееханный оформлятором - сделается красивым. Пробелы/табы - включались в код в брэйнфак языках - там им и место.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 29.09.2009, 21:10   #8
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
Таки да.
Продолжим с выведения. Из ruby.
руб очень забавный язык. В нем - всё объект. Даже отсутствие объекта - объект, который честно ответит на вопрос nil.nil? => true. Это - стоит помнить. Да, про дефолтно привычные булевы операции... 0 => true. "" => true. В булевых операциях эквивалент false лишь nil и false. Это сложно понять. Надо просто запомнить.
Дока на руби, как ни удивительно - http://www.ruby-doc.org/ основная коллекция. Для простоты - http://www.ruby-doc.org/docs/ProgrammingRuby/
Со вниманием продолжим дальше, угум
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 30.09.2009, 07:26   #9
Виктор
Мохнатый Красношёрстный
 
Аватар для Виктор
 
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
Виктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастер
Цитата:
У меня таб = 2 пробела. Мне так удобно. У знакомого - 4 пробела. Исходник со смешанными( табы/спэйсы ) отступами приполз ко мне. После сохранения - модуль подох. Долго искали ошибку, ага.
Аргумент принят .
__________________
Хрю-Кхе-Кхе
Обитающий в ЖЖ: http://victor-zagorski.livejournal.com
Виктор вне форума   Ответить с цитированием
Старый 30.09.2009, 07:38   #10
Виктор
Мохнатый Красношёрстный
 
Аватар для Виктор
 
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
Виктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастер
Кстати, Afa, может сможешь подсказать. Какие есть готовые cms'ки, написанные на руби. Хочется что-нить вроде wordpress'а.
__________________
Хрю-Кхе-Кхе
Обитающий в ЖЖ: http://victor-zagorski.livejournal.com
Виктор вне форума   Ответить с цитированием
Старый 30.09.2009, 12:47   #11
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
проще всего глянуть на typo. а так - зависит от того, что нужно - для вики одно, для блога другое, тупо файлами поуправлять третье. серебряной пули не существует. для себя взял привычку ядро рисовать сам а функционал лениво собирать плугинами и гемами - быстрее получается
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 01.10.2009, 07:54   #12
Виктор
Мохнатый Красношёрстный
 
Аватар для Виктор
 
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
Виктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастер
Ещё вопрос. Afa, а как из руби грамотно/правильно работать с коммуникационным портом. С модемом там, или ещё каким железом на нём висящем?
__________________
Хрю-Кхе-Кхе
Обитающий в ЖЖ: http://victor-zagorski.livejournal.com
Виктор вне форума   Ответить с цитированием
Старый 01.10.2009, 12:36   #13
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,206
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
гм
http://ruby-serialport.rubyforge.org/
оно?
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 02.10.2009, 08:14   #14
Виктор
Мохнатый Красношёрстный
 
Аватар для Виктор
 
Регистрация: 01.04.2006
Адрес: Красноярск
Сообщений: 2,476
Виктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастерВиктор мастер
Пасиб, думаю сойдёт. Допаяю железяку, опробую библиотечку в деле. Если хорошо потянет, можно будет руби уже в практических задачках применять.

p.s. что мне понравилось в руби, так это соглашение об именах. Если идентификатор заканчивается на ? -- то он возвращает булевское значение.

типа

person = new Person("Vasya", "Pupkin")
. . . . .
if (person.has_money?) . . .

Если ! то меняет состояние объекта. Правда это, как я заметил, не строгое правило, шо, на мой взгляд, не есть гут.
__________________
Хрю-Кхе-Кхе
Обитающий в ЖЖ: http://victor-zagorski.livejournal.com
Виктор вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 06:18.