<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>yzhang (绿海荡舟)</title>
    <link>https://ruby-china.org/yzhang</link>
    <description>Ruby把编程的乐趣还给了程序员</description>
    <language>en-us</language>
    <item>
      <title>【招聘】【深圳】幸福时代深圳数字商业有限公司招聘 1 名中级 Ruby on Rails 后端工程师</title>
      <description>&lt;h2 id="公司简介："&gt;公司简介：&lt;/h2&gt;
&lt;p&gt;我们是一家新兴的科技公司，位于深圳龙华硅谷大院，专注于开发网约车租赁平台。我们的团队充满活力、充满激情，并致力于推动技术的进步，提供高质量的产品和服务。&lt;/p&gt;
&lt;h2 id="职位概述："&gt;职位概述：&lt;/h2&gt;
&lt;p&gt;我们正在寻找一位中级 Ruby on Rails 工程师加入我们的团队。作为一名工程师，您将有机会参与全方位的项目开发，负责构建可扩展、稳健的网络应用，并与团队密切合作，共同推动产品的发展和改进。&lt;/p&gt;
&lt;h2 id="职责和要求："&gt;职责和要求：&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;设计、开发和维护 Ruby on Rails 应用程序。&lt;/li&gt;
&lt;li&gt;负责编写高质量的代码，确保系统的稳定性、安全性和性能。&lt;/li&gt;
&lt;li&gt;参与需求分析、系统设计和技术选型。与团队成员合作，共同解决技术难题，并推动项目进展。&lt;/li&gt;
&lt;li&gt;对新技术和工具保持好奇心，不断学习和提升技能。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="职位要求："&gt;职位要求：&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;有 2 年以上的 Ruby on Rails 开发经验。&lt;/li&gt;
&lt;li&gt;熟悉 MVC 架构和 RESTful 设计原则。&lt;/li&gt;
&lt;li&gt;熟练掌握 Ruby 语言和 Rails 框架。&lt;/li&gt;
&lt;li&gt;熟悉常用的数据库系统，如 PostgreSQL、MySQL 等。&lt;/li&gt;
&lt;li&gt;具备良好的沟通能力和团队合作精神。&lt;/li&gt;
&lt;li&gt;对技术有强烈的热情，乐于学习和接受挑战。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="福利待遇："&gt;福利待遇：&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;薪资 15K-20K&lt;/li&gt;
&lt;li&gt;弹性工作时间，充分体现工作与生活的平衡。&lt;/li&gt;
&lt;li&gt;提供完善的培训和职业发展机会，支持员工不断成长和提升。&lt;/li&gt;
&lt;li&gt;良好的工作环境和团队氛围，积极、开放的企业文化。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="联系方式："&gt;联系方式：&lt;/h2&gt;
&lt;p&gt;如果您对此职位感兴趣，请直接加 vx：yzhang2013&lt;/p&gt;

&lt;p&gt;我们期待您的加入，与我们一同创造更加美好的未来！&lt;/p&gt;</description>
      <author>yzhang</author>
      <pubDate>Sat, 06 Apr 2024 15:20:34 +0800</pubDate>
      <link>https://ruby-china.org/topics/43642</link>
      <guid>https://ruby-china.org/topics/43642</guid>
    </item>
    <item>
      <title>推荐 2 本中高级的 Ruby 书籍</title>
      <description>&lt;p&gt;看到不少 Ruby 爱好者在求入门书籍。还没看到求进阶书籍的。根据个人经验，强烈推荐 2 本宝典级 Ruby 书籍：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design Patterns in Ruby&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metaprogramming Ruby&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在周末闲暇时间，泡上一杯好茶，读读这 2 本书，真是享受！&lt;/p&gt;</description>
      <author>yzhang</author>
      <pubDate>Tue, 19 Mar 2013 13:00:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/9560</link>
      <guid>https://ruby-china.org/topics/9560</guid>
    </item>
    <item>
      <title>Spinejs.com 无法访问</title>
      <description>&lt;p&gt;谁有同样的问题？这样的技术网站不会是被封了吧。&lt;/p&gt;</description>
      <author>yzhang</author>
      <pubDate>Wed, 30 Jan 2013 00:31:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/8472</link>
      <guid>https://ruby-china.org/topics/8472</guid>
    </item>
    <item>
      <title>介绍一个搜索／过滤有关的 gem： rails-simple-search</title>
      <description>&lt;h2 id="rails-simple-search"&gt;rails-simple-search&lt;/h2&gt;
&lt;p&gt;rails-simple-search 是一个 Ruby gem. 它可以帮助你为你的网站快速实现搜索／过滤功能。在输出结果中它还可以帮助分页。如果你不需要一个全文搜索的功能，这个 gem 很可能就是你需要的。&lt;/p&gt;

&lt;p&gt;以前，我时常需要实现一个页面来显示从一个数据库表里面根据条件搜索出来的纪录。在我实现这个 gem 之前，我通常是这样实现的：&lt;/p&gt;

&lt;p&gt;在 view 里面使用 &amp;lt;%= form_tag %&amp;gt; 来构造一个 form。用&amp;lt;%= text_field_tag %&amp;gt; 或其他的 html input 来输入搜索条件&lt;/p&gt;

&lt;p&gt;在 controller 里面，把搜索条件从 params 里面拿出来，放到 instance variable 里面。这些 instance variables 在 view 里面可以用到。&lt;/p&gt;

&lt;p&gt;构造 SQL 的 WHERE 子句。根据搜索条件的不同，有时还需要用到 JOIN。&lt;/p&gt;

&lt;p&gt;用上面构造的 WHERE 和 JOIN 子句，运行 find(:all, :conditions =&amp;gt; [xxxxxx], :joins =&amp;gt; “yyyyyy”) &lt;/p&gt;

&lt;p&gt;在使用上面的 pattern 多次以后，我意识到我可以把这个 pattern 做到一个 library 里面。以上就是 rails-simple-search 的由来。&lt;/p&gt;

&lt;p&gt;现在，实现这样功能的一个页面就非常简单了。你可以从下面的例子里看出这是多么的简单。。。&lt;/p&gt;

&lt;p&gt;更多内容在这里： &lt;a href="https://github.com/yzhanginwa/rails-simple-search" rel="nofollow" target="_blank" title=""&gt;https://github.com/yzhanginwa/rails-simple-search&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;有一个使用本 gem 的例子 RoR 项目在这里：&lt;a href="https://github.com/yzhanginwa/demo_app_for_rails_simple_search" rel="nofollow" target="_blank" title=""&gt;https://github.com/yzhanginwa/demo_app_for_rails_simple_search&lt;/a&gt;&lt;/p&gt;</description>
      <author>yzhang</author>
      <pubDate>Sun, 16 Dec 2012 13:59:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/7604</link>
      <guid>https://ruby-china.org/topics/7604</guid>
    </item>
    <item>
      <title>从 Asset Packager 升级到 Assets Pipeline</title>
      <description>&lt;p&gt;最近做的一个项目是把一个原来 Rails 2 的网站升级到 Rails 3.2。这个 project 里面用到了 Asset Packager 来管理 Javascript 文件。Rails 3.1 开始采用 Assets Pipeline 来管理 Javascript，stylesheet，和 images 等资源。在研究了一下 Asset Packager 以后，发现它做的事情和 Assets Pipeline 接近。升级的策略比较直接，如下：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;把 public/javascripts 下的文件拷贝到 app/assests/javascripts下。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;对应文件 config/asset_packages.yml 里面的每个 javascript package 名字，在 app/assets/javascripts 下创建一个文件。这个文件的名字格式如下： #{package_name}_package.js。这个文件里面列出原来 package 包含的文件。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;例如文件 asset_packages.yml 里面包含如下内容&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;javascripts:
- base:
  - jquery/jquery-1.3.2
  - jquery/jquery.livequery
  - jquery/jquery.validate-1.5.1
  - jquery/jquery.blockUI

- ui_and_layout:
  - jquery/jquery-ui-1.7.2.custom
  - jquery/jquery.layout
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在文件 base_package.js 里面内容如下&lt;/p&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="s"&gt;//= require jquery/jquery-1.3.2&lt;/span&gt;
&lt;span class="s"&gt;//= require jquery/jquery.livequery&lt;/span&gt;
&lt;span class="s"&gt;//= require jquery/jquery.validate-1.5.1&lt;/span&gt;
&lt;span class="s"&gt;//= require jquery/jquery.blockUI&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;原来代码里面用 javascript_include_merged 来引用这些 packages。现在我们要用 Assets Pipeline 的方法来引用。个人认为比较好的办法是自己定义 javascript_include_merged，让它去调用 javascript_include_tag。具体方法如下：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;# file app/helpers/application.rb&lt;/span&gt;
&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;ApplicationHelper&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;javascript_include_merged&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;js_files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_package"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;javascript_include_tag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;js_files&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;如果你使用 assets precompiling，下面 1 行代码需要加入对应的 config 文件里&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;config.assets.precompile += %w( base_package.js )&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;以上步骤，不需要修改 View 里面的代码。调试也简单。又是快乐的一天。&lt;/p&gt;</description>
      <author>yzhang</author>
      <pubDate>Sun, 16 Dec 2012 13:51:32 +0800</pubDate>
      <link>https://ruby-china.org/topics/7603</link>
      <guid>https://ruby-china.org/topics/7603</guid>
    </item>
  </channel>
</rss>
