Jump to content

cyklop77

User
  • Posts

    1,770
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by cyklop77

  1. да, фабрика это идея. спасибо
  2. ну вообще я умею немного работать с несколькими паттернами. и знаю несколько mvc-фреймворков. это всё не проблема. проблема в том, что мне непонятно как их применить к описанной задаче. и одного mvc здесь мало, потому что задание не решить задачу, а по максимуму использовать паттерны
  3. люди помогите пожалуйста советом и пинками. мне просто нужно знать с чего начать копать и в какую сторону у меня задача на любом mvc-фреймворке создать обычную табличку с сортировкой и фильтром. но при этом неоходимо по максимуму использовать паттерны ООП. может быть вам когда-нибудь попадались более или менее похожие примеры при чтении книг, статей, туториалов? укажите мне на них, я изучу. пусть там и не на 100% совпадает задача. мне главное начать а главная проблема в том, что я представляю задачу очень просто(и она на самом деле простая): нужно насоздавать объектов и вывести их из на экран через представление mvc. затем добавить в html элементы сортировки и фильтра, которые бы при помощи ajax запрашивали у сервера те же самые объекты, но в другом порядке и количестве. всё. какие паттерны здесь можно применить(даже в целях демонстрации притянуть за уши) я не представляю
  4. всем спасибо, пришлось убунту заюзать. вроде пока молчат
  5. помогите пожалуйста определить что за шрифт используется тут: у меня задача написать этим шрифтом другую надпись. проблема в том, что эта надпись сделана через svg, а значит название шрифта узнать нельзя
  6. попытаюсь предоставить наглядный практический пример к тому, что я написал выше. вот реальная задача на ruby on rails. я буду очень подробно пояснять ход программы чтобы не привязывать задачу к конкретному языку/фреймворку есть блог с системой тегов. пользователь имеет возможность редактировать посты и при этом менять привязанные к посту теги, удалять и создавать новые. на уровне модели теги и посты связаны связью многие ко многим(has and belongs to many). на уровне БД табличка post связана с табличкой tags через табличку post_tags, которая состоит из двух колонк: tags(integer), posts(integer) вот экшн update, который срабатывает после того как пользователь ввёл нужные изменения и отправил форму. вариант1: def update if @post.update(post_params) add_new_tags(@post) if params[:tagnames] # если из формы пришли новые теги, то добавляем их в табличку tags и создаём ассоциации в табличке post_tags destroy_tags(params['delete_tags'], @post) if params['delete_tags'] # если из формы пришёл список тегов для удаления, то удаляем соответствующие ассоциации redirect_to user_post_path(current_user.id, @post.id), notice: 'posts was successfully updated.' # редирект куда-то там, в случае успешного обновления поста else render :edit # тоже типа редиректа, только в другое место end end def add_new_tags(post) tagnames = params[:tagnames].split(/[, \.?!]+/) # разбиваем строку по запятым и получаем набор тегов tagnames.each do |tagname| # цикл по тегам tag = Tag.find_by(title: tagname.downcase) # ищем в табличке tags существующий тег if tag # если находим уже существующий тег, то..... sql = "select * from 'posts_tags' where post_id = #{post.id} and tag_id = #{tag.id}" records_array = ActiveRecord::Base.connection.execute(sql) # ...... проверяем есть ли ассоциация в табличке post_tags tag.posts << post if records_array.count == 0 # ...............если её нет, то создаём else # если не находим существующий теги, то............ tag = Tag.create(title: tagname.downcase) # .............создаём его tag.posts << post # .........и добавляем ассоциацию end end end def destroy_tags(tags,post) tags.each do |tag| # цикл по тегам sql = "delete from 'posts_tags' where post_id = #{post.id} and tag_id = #{tag}" records_array = ActiveRecord::Base.connection.execute(sql) # удаляем ассоциацию end end вариант2: def update begin @post.update(post_params) add_new_tags(@post) if params[:tagnames] destroy_tags(params['delete_tags'], @post) if params['delete_tags'] redirect_to user_post_path(current_user.id, @post.id), notice: 'posts was successfully updated.' rescue logger.debug 'update post is failed' # запись в лог render :edit end end def add_new_tags(post) tagnames = params[:tagnames].split(/[, \.?!]+/) tagnames.each do |tagname| tag = Tag.find_by(title: tagname.downcase) if tag sql = "select * from 'posts_tags' where post_id = #{post.id} and tag_id = #{tag.id}" begin records_array = ActiveRecord::Base.connection.execute(sql) tag.posts << post if records_array.count == 0 rescue logger.debug 'query for add association posts_tags is failed' raise 'add_new_tags error' end else begin tag = Tag.create(title: tagname.downcase) tag.posts << post rescue logger.debug 'query for create tag and add association posts_tags is failed' raise 'add_new_tags error' end end end end def destroy_tags(tags,post) tags.each do |tag| sql = "delete from 'posts_tags' where post_id = #{post.id} and tag_id = #{tag}" unless ActiveRecord::Base.connection.execute(sql) logger.debug 'query for delete tags is failed' raise 'destroy_tags error' end end end вопрос. во втором варианте оправдана ли дополнительная сложность в виде добавленных проверок типа begin/rescue. от этих проверок стал ли код более защищённым от ошибок. так вообще правильно программировать?
  7. ...а я продолжаю серию смешных вопросов по основам. но для меня они действиетльно важные, поэтому пожалуйста поделитесь опытом и не смейтесь всегда хотелось разобраться толком с назначением конструкций типа try/catch. в зависимсоти от языка названия могут различаться, но смысл остаётся. а смысл по-моему лишь в том, чтобы проверить множественное действие. то есть try/catch стоит использовать только тогда, когда конструкции типа if недостаточно. прав ли я? множественные действия, про которые я говорил выше, могут быть двух видов: 1. многострочные: try post = Post.new post.title = 'good post' + $postfix post.body = file.open(/folder/file.txt) post.savecatch(nameError) modal_window_with_errormessage_raise()catch(nameError) bla_bla()catch(nameError) bla_bla()catch(nameError) bla_bla()catch(nameError) bla_bla()finally bla_bla_final()end2. однострочные try file.open(/db_temp/data.xml)catch(nameError) modal_window_with_errormessage_raise()catch(nameError) bla_bla()catch(nameError) bla_bla()catch(nameError) bla_bla()catch(nameError) bla_bla()finally bla_bla_final()endв первом случае ошибка может произойти например в строке: post.title = 'good post' + $postfix , если невозможно произвести конкатенацию из-за несовпадения типовpost.body = file.open(/folder/file.txt) , если нет прав на файлpost.save , если БД занята в данный моментво втором случае в единственной строке может произойти ошибка потому что: нет прав на доступ к файлу,физически нет файла на HDD,в файл в данный момент пишутся данные то есть try/catch использовать разумно только в перечисленных случаях, иначе программе добавляется неоправданная сложность. прав ли я или еть ещё случаи, в которых применяется try/catch? ps: короче у меня в голове каша, но хотелось бы разобраться
  8. бывалые прогеры, помогите пожалуйста разобраться в таком смешном вопросике есть mvc-фреймворк, создана некотрая сущность 'Article' с набором экшенов, реализующих CRUD: index,new,edit,show,update,create,destroyприложение так задумано, что ни одна сущность 'Article' совсем удаляться из БД не будет. для этого я добавил в соответствующую 'Article' табличку поле hide(boolean). если в hide значение false, то статья видна пользователям приложения, если в hide значение true, то не видна вопрос в том что будет правильнее с точки зрения хорошего стиля: 1. поместить функцию смены значения hide в экшен destroy 2. не трогать экшен destroy, и для смены значения hide создать ещё один экшен. назвать его например article_visible_change
  9. а. ну значит всё ок. броузерстэк глючит
  10. помогите пожалуйста вернуть надписи на место вот страничка . во всех браузерах отображается одинаково. но в windows8.1 opera12.16 страничка выглядит так проверял при помощи сервиса browserstackScreenshots . может он так заглючить? проверить на реальном браузере у меня нет возможности
  11. ну это понятно, но хотелось бы руководства типа "проектирование для чайников" )
  12. сейчас спрошу про сферического коня в вакууме в общем с некоторых пор создавать сайты без предварительного проектирования стало очень тяжко. перед началом работы над проектом я составляю небольшую схемку основных классов и табличек, которые будут являться основой сайта. например для блога с системой лайков и комментариев моя схемка выглядит приблизительно так: но это всё непрофессионально и не очень эффективно. я уверен, что уже существуют уже наработки в этой области. поэтому хотелось бы их изучить, а не изобретать велосипед. посоветуйте пожалуйста какие-нибудь книжки не очень крутого уровня, знания из которых можно было бы практически применять при создании сайтов
  13. а не скажете, там доменное имя дают впридачу или я не правильно понимаю? мне после регистрации в письме прислали: как я понимаю, если я после тестового периода всё таки решу оплатить этот виртуальный сервер, то это имя останется за мной? (сейчас, пока информация не распространилась по DNS, оно не активно, но соответствующий ему ip уже работает)
  14. скажите пожалуйста, у кого-нибудь получалось здесь зарегистрировать бесплатный выделенный сервер? дело в том, что много где в интернетах написано, что там можно урвать бесплатный vps, но у меня кнопка 'get free web hosting' просто не срабатывает. стало интересно, сервис совсем не работает или только в последнее время так же буду благодарен, если кто-нибудь укажет место где можно зарегистрировать выделенный сервер или бесплатный, или с тестовым периодом хотя бы несколько дней. мне он нужен для тренировки поэтому стабильность или хорошие характеристики не важны
  15. помогите пожалуйста пинками разобраться в вопросе допустим, что я купил выделенный виртуальный сервер и решил выложить сайтики в web. какой минимум действий нужно для этого совершить? доупустм, я зашёл на свой сервер, поднял там apache(с модулем php), mysql. затем закинул сайты в определённый каталог. затем настроил конфиг апача так чтобы он смотрел в этот каталог. для экспериментов на локальном сервере этого хватало. проблема в том, что на локальном сервере я мог в ServerName использовать любые адреса(хоть google.com). но в web часть адресов занята. подскажите пожалуйста что ещё нужно установить и настроить чтобы избежать конфликтов адресов
  16. дело в том, что я их вообще не генерирую) при этом получается создавать репозитории и пушить в них
  17. ребята, заметил, что с недавних пор на гитхабе уже стало не обязательно генерировать ключи. скажите пожалуйста, они теперь вообще не нужны или где-нибудь в системе всё таки хранятся? в ~/.ssh вроде нету ничего, а где ещё можно их поискать?
  18. cyklop77

    https

    Если проще - это защищенный протокол, который шифрует передаваемые данные, можно использовать для авторизации, платежей и прочего. Скорость получения инфы снижается настолько незначительно, что об этом можно даже не упоминать по поводу скорости. как я понимаю, там только буквально пара запросов добавляется? чтобы сайт и клиент, перед началом непосредственно работы, обменялись ключиками? или при каждом запросе лишние запросы появляются? я не говорю здесь про шифровку/дешифровку, только про количество запросов
  19. да. спасибо. и это тоже. но там ServerAlias нужно было использовать, а не Alias
  20. помогите пожалуйста настроить /etc/hosts использую apache2. создал 2 сайта. /var/www/html/site1.ru/index.html:<div>site1</div> /var/www/html/site2.ru/index.html:<div>site2</div>конфиги: /etc/apache2/sites-available/000-default.conf: <VirtualHost *:80> DocumentRoot /var/www/html/site1.ru ServerNmae site1.ru Alias www.site1.ru </VirtualHost> /etc/apache2/sites-available/site2-config.conf: <VirtualHost *:80> DocumentRoot /var/www/html/site2.ru ServerNmae site2.ru Alias www.site2.ru </VirtualHost>в файле /etc/apache2/apache2.conf есть строка: ServerName localhost/etc/hosts: 127.0.0.1 site1.ru127.0.0.1 www.site1.ru127.0.0.1 site2.ru127.0.0.1 www.site2.ru.....................в результате через браузер без проблем загружаются: site1.ru, www.site1.ru, site2.ru но по адресу www.site2.ru показывается: site1в этом проблема
  21. cyklop77

    https

    помогите пожалуйста понять что такое https из прочитанного я пока понял приблизительно следующее: 1. если сайт обменивается с посетителями ценной информацией(например сайт банка предоставляет сервис личного кабинета с возможностью перевода денег), то все данные должны передаваться в зашифрованном виде. 2. то есть владелец сайта через какой-то сервис(типа сервиса по прожадам доменных имён) покупает ssl-сертификат и после этого между сайтом и браузерами клиентов передаётся контент, зашифрованный при помощи 100-значного ключа 3. таким образом количество запросов между клиентом и сервером увеличивается. соответственно скорость получения информации несколько уменьшается если я что-то неверно понял, то пожалуйста поправьте
  22. оооо! спасибо, ты меня спас. а скажи пожалуйста как ты добрался до этого кода?
  23. вот этот box-shadow мне и нужен бы)
  24. не сочтите за рекламу. но мне вот с этой странички хотелось бы скопировать hover-эффект для этого блока . помогите пожалуйста проблема в том, что firebug не видит кода для hover-эффекта. пробовал разные браузеры
  25. да, как-то он потом разбивается. проблема в том, что мне кажется, так проектировать БД нельзя. теоретически одна ячейка должна содержать одно значение а тут как минимум ещё потеря в скорости перебора таблицы получается... или я совсем по мелочам загоняюсь? вот сам туториал, если это имеет значение(там есть сылка на видео). я плохо объясняю
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy