-
Notifications
You must be signed in to change notification settings - Fork 43
2396 - 3 #279
base: master
Are you sure you want to change the base?
2396 - 3 #279
Conversation
https://youtu.be/aHM58_v8gng?t=1m24s Откуда там про Марс вообще :))) |
Опять-таки, не делай всю работу в одном коммите — лучше раздробить на много мелких, так проще откатывать и изменять код. |
post.delete if post.link == params[:link] | ||
end | ||
PostWorker.perform_async(params[:link]) | ||
sleep 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не, фигня :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я так понимаю, ты ждешь что твой парсер обработает страницу?
А что, если за 2 секунды PostWorker
не отработает?
Если ты прям хочешь ждать до конца, то ты можешь вызывать PostWorker.perform(params[:link])
.
Но вообще так тоже делать не круто (а делать через pub/sub), но наверное пока сойдет и так.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Изначально хотел добавить flash как в рельсах, что ссылка отправлена на анализ, но не успевал и сделал такой костыль.
<header> | ||
<%= erb :navbar %> | ||
</header> | ||
<div class="container"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Соблюдай отступы.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
окей, накладочка.
@@ -0,0 +1,15 @@ | |||
<%= erb :header %> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
header и head это разные вещи
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
принял
</div> | ||
</div> | ||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> | ||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JS и CSS скрипты мы обычно складываем в head
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
шаблон из документации
|
||
post '/create' do | ||
Post.all.each do |post| | ||
post.delete if post.link == params[:link] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можешь рассказать зачем ты это делаешь?
Потому что на первый взгляд это кажется совсем не верным решением.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удаляю пост, если он уже был ранее создан. Обновить его данные было бы логичнее...
end | ||
|
||
get '/:id' do | ||
@posts = Post.all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здесь то же самое.
# This is class handling comments for post across API onliner.by | ||
class CommentsParser | ||
LIMIT = 50 | ||
API_PATH = 'https://comments.api.onliner.by/news/tech.post/'.freeze |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я так понимаю из url, ты только технические статьи можешь парсить?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Хз отчего, но я бы мб вынес эти констаны в Setting.onliner_api
и сделал хешом. Подумай об этом. Делать необязательно, но мб тебе понравится.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Согласен. Добавило бы больше гибкости
# This is class conects to API AZURE, Analyze sentiment texts and | ||
# fetch score for his | ||
class RatingCounter | ||
KEY_AZURE = Setting.get('key_azure').freeze |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот это тоже бы почему-то вынес в Setting'и.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Или даже может сделал AzureSetting < Setting
и так инкапсулировал конфиг Azure. То же самое с онлайнером.
class PostWorker | ||
include Sidekiq::Worker | ||
def perform(link) | ||
call(link) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А в чем смысл метода call
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reek ругался, что лучше вынести в отдельный класс.
end | ||
|
||
def self.fetch_title(url) | ||
agent = Mechanize.new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мне не нравится то, что класс называется CommentsParser
, а ты делаешь две разные вещи (фетчишь комменты и фетчишь тайтл).
По ООП тут правильно было бы вынести этот метод в отдельный класс. Либо (чтобы соптимизировать на запросе) фетчить заголовок вместе с комментами и возвращать хешом — {title: '...', comments: [...]}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Второй вариант рассматривал, но посчитал, что лучше вынести в отдельный метод.
Вынесу в отдельный класс.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Исправлю замечания в ближайшие дни.
end | ||
|
||
def self.fetch_title(url) | ||
agent = Mechanize.new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Второй вариант рассматривал, но посчитал, что лучше вынести в отдельный метод.
Вынесу в отдельный класс.
class PostWorker | ||
include Sidekiq::Worker | ||
def perform(link) | ||
call(link) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reek ругался, что лучше вынести в отдельный класс.
Номер
2396
Номер задания
3
Ссылка на видео с демо
https://youtu.be/aHM58_v8gng
Комментарии
Готово