Cần sự giúp đỡ từ những lập trình viên Rails có kinh nghiệm
Chào mọi người, mình hiện tại là giao viên tiếng Anh. Mình đang tự học Rails (được 5 tháng) để làm startup. Tuy nhiên, hiện tại mình đang gặp một vấn đề về search trong rails, mình đã cố gắng search khắp trên internet (stackoverflow, google, rails forum, và cả trên trang daynhauhoc) nhưng vẫn chưa tìm ra giai pháp. Nếu bạn nào có kinh nghiệm về Rails thì có thể giup mình trong vấn đề này được không? Và nếu như muốn làm startup ở Việt Nam thì có thể thảo luận cùng với mình.
Xin vui lòng liên lạc qua số điện thoại của mình: 1215175815. Cám ơn các bạn đã đọc.
Em thì đang học rails thôi , nhưng với các hệ thống tìm kiếm thì người ta sẽ tách thành một hệ thống độc lập để đảm bảo về hiệu suất, thông thường sử dụng Elasticsearch hoặc các giải pháp tương tự, đặc biệt là khi cho phép các query phức tạp.
Cám ơn bạn đã đóng góp ý kiến. Mình đã thử sử dụng elasticsearch(searchkick), solr, sunspot, và bây gio là pg search dành cho postgresql nhưng vẫn bị vấn đề. Bạn có kinh nghiệm về search multi models không? Nếu có thể thì mình cùng nhau trao đổi.
À em cũng chưa làm gì phải đụng đến tìm kiếm phức tạp lắm , hóng cao nhân vậy.
Ok, cám ơn bạn đã quan tâm. Mà mình có 1 thắc mắc là bạn tự học như thế nào? Qua internet hay là tới trung tâm.
Tại mình biết ở Sài Gòn thì chỉ có pingo ở ĐH BK dạy Rails, còn Hà Nội thì có techmaster. Mà trang web của pingo mình mới vào hôm qua thì thấy không còn nữa. Hơn thế nữa mình nghĩ rails là framework cũng khá hữu dụng mà tại sao có qúa ít nơi dạy, đặc biệt là ở Sài Gòn, một trọng những nơi phát triển nhất về công nghệ ở Việt Nam.
Mình thì tự học bằng cách search tất cả các khóa học trên internet mà mình có thể kiêm được kể cả youtube và torrent, nhưng đa số đều dạy cơ bản. Đôi khi có những vấn đề mình cần phải trực tiếp hỏi một ai đó thì học qua internet lại không thể giúp được.
GitHub
Đây là github của mình, nếu bạn có nhã hứng thì có thể vào xem và đóng góp ý kiến cho mình:
domanhtien2011 (Tien Manh Do)
Self-taught Ruby on Rails programmer have a passion for learning and experimenting new things Love to learn from other programmers too. ::)) iOS next? :) - domanhtien2011
Rails em cũng newbie thôi anh, học ruby vật cả ra mà ko nhớ được bao nhiêu cả .
Ruby thì em học trên rubymonk.com với lại đọc sách (Programming ruby - The pragmatic programmer).
Rails thì em học một vài khóa trên mạng. Khóa của berkeley này dạy song song rails và agile, phần sau dạy về javascript Phần 1 và Phần 2 (cũng dừng lại ở cơ bản thôi, nhưng khá hay) với lại em đang bắt đầu đọc sách Agile Web Development with Rails 4.
Trước mắt của em là như thế .
Tổng quát chung về việc phát triển ứng dụng web (từ backend -> front end, security, scaling…) anh có thể học khóa này của stanford (xem slide) http://web.stanford.edu/~ouster/cgi-bin/cs142-winter15/lectures.php
Còn về phát triển web nói chung thì anh có thể lên https://news.ycombinator.com/best đọc tin mỗi ngày (mỗi ngày!), hoặc reddit /r/ruby /r/rails /r/webdev để cập nhật tin. Đó là đối với những ai muốn đi sâu vào dev thôi, còn anh thì có thể không cần thiết.
Ok, cám ơn bạn. Mình vừa chat với 1 anh bạn ở trên stackoverflow về vấn đề của mình mà ảnh cũng bó tay.
Những tài liệu ở trên mình đã xem qua. Nói chung vẫn là cơ bản. Nếu áp dụng vào 1 vấn đề cụ thể hoặc 1 gem cụ thể thì mình nghĩ phải cần đến 1 tutor riêng thì mới giai quyết được hoặc nâng cao khả năng code.
Về phần Y combinator và reddit thì mỗi tuần mình vào đó ít nhất 1 lần. Với lại techcrunch nữa. Nếu đam mề về startup thì nhất định không bỏ qua mấy trang đó. Nhưng mà mình vẫn muốn bắt tay vào làm 1 cái startup thật sự chứ đọc thành công của người khác hoài thì cũng stress lắm. Mình cũng hy vọng là một ngày nào đó cũng được lên techcrunch. Hehe… :))
Nâng cao thì chỉ có sách và các bài diễn thuyết ở hội nghị thôi anh , viết tuts không nhiều lắm. Ví dụ như cái ruby conf mới tổ chức http://rubyconf.org/program hoặc railsconf http://confreaks.tv/conferences/railsconf. Weekly newsletter thì có cái http://rubyweekly.com
Mà em chưa biết anh gặp vấn đề gì mà ko giải quyết được nhỉ, elasticsearch có tìm kiếm nhiều models mà.
Bạn có thể mô tả rõ hơn là bạn muốn search kiểu gì không (nghe có vẻ giống narrow search)? Chứ mình chưa thấy trường hợp nào mà elastic_search không làm được cả.
Đúng là như vậy nhưng mà khi implement nó thì mình gặp vấn đề. Nay mình chuyển sang dùng pg search. Hiện tại thì đã ổn, không biết tương lai thì như thế nào. :))
Cám ơn bạn đã quan tâm. Hiện tại thì mình chuyển sang dùng pg search.
Trước đó mình dùng gem searchkick thì bị vấn đề, nếu bạn có thể giup mình thì mình sẽ quay lại sử dụng searchkick vì mình thấy tốc độ xử lý của nó rất nhanh.
Vấn đề của mình là: homepage của mình cho phép user search tên trường học và tên giao viên, và dùng chung 1 form search. Mình có 2 tables là school và teacher. One school has many teachers và teacher belongs to school. Vậy bây giờ nếu mình dùng chung một cái form search thì mình có nên thay đổi relationship của teacher và school hay là mình nên tạo 1 cái table mới để join kết qủa search của teacher và school lại?
Hồi trước thì mình cho user tìm kiếm tên trường học trước, sau đó họ sẽ vào trường học và tìm kiếm tên giao viên, nhưng mà kết qủa nó trả lại thì là tên của tất cả giao viên chứ không phải là tên giao viên mà mình muốn tìm. Thêm vào đó, mình thấy như vậy qúa mất công vì phải bắt user search 2 lần. Cho nên mình mới muốn là cho user search tên trường hoặc tên giao viên cùng 1 lúc. Nhưng kiến thức về backend của mình còn hạn chế qúa nên chưa tìm ra giai pháp. Không biết là bạn có bao gio gặp vấn đề tương tự chưa? Hay bạn có biết resources nào cũng áp dụng searchkick như trường hợp của mình không? Bạn có thể cho mình đường link, mình sẽ tự đọc và tìm hiểu.
Hi bạn, yêu cầu của bạn gần giống narrow search (thực chât của bạn là search trên các model có relationship với nhau, ở đây là trường học vs giáo viên, quan hệ 1-n). Bản chất của elastic-search là đánh index nên index thuộc về flat-world (dữ liệu phẳng, chẳng còn relationship với nhau nữa).
Ưu điểm:
Vấn đề của bạn có 1 số hướng giải quyết sau:
PUT /ind/school/1 { "name":"DHBK" }
, giờ cóPUT /id/teacher/1 {"name":"hoang", "school" {"id":"1", "name":"DHBK"}}
. Nhét 1 phần thôi, chủ yếu là tên vì thường người dùng chọn search tên trường trước, sau mới search tên thầy giáo. Ưu: cũng khá nhanh. Nhược: vẫn phải seach trên 2 document.PUT /ind/school/1 { "name":"DHBK" }
, giờ cóPUT /id/teacher/1 {"name":"hoang", "school_id":"1"}
. Đây là cách làm thông dụng nhất (và mọi người cũng hay làm. Muốn search các teacher của DHBKB1: Phải search ra school -> map với school_id (nếu muốn search tên thầy trên một vài trường thì phải lấy ra mảng school_ids)-> gọi ES search tên thầy với thêm một filter nữa: “term”: { “school_id”: 1 } (hoặc dùng MIXINS nếu ra mảng của school_ids)
Hy vọng giúp được bạn. Ping mình nếu cần trao đổi thêm nhé.
p/s: diễn đàn không support embeded code à? Hic
Mình cũng không rõ UI của bạn thế nào. Chứ với việc có 2 ô EditText, và người dùng đều gõ được cả 2 nghe chừng không được friendly cho lắm. Mình gợi ý là bạn dùng suggested edittext.
1- Ô1: cho gõ tên trường, khi đó mình dùng ajax gợi ý người dùng (giống google vậy) các trường học có tên chứa cái text đó. Họ chọn, lấy school_id ra. Còn nếu muốn include nhiều trường, cũng gợi ý, nhưng thay vì hiển thị trên ô, mình cho vào một tag-groups phía dưới (cái này làm giống ITviec ý)
2- Ô2: bây giờ mới search tên thầy giáo khi đã lấy được school_id phía trên (hoặc school_ids nếu search nhiều trường học).
Thân.
Mình không làm Ruby nhưng muốn hỏi các cao thủ Ruby thì Join vào đây để hỏi http://chat.ruby.org.vn/
Cám ơn câu trả lời chi tiết của bạn. Hiện tại mình đang bận làm 1 dự án khác, khi nào xong mình sẽ làm theo gợi ý của bạn. Nếu có gì không hiểu mình sẽ hỏi bạn. Cám ơn bạn nhiều lắm. ^^
Cám ơn bạn. Mình sẽ bookmark nó. 1 ngày vui vẻ nhé.