我记得,我在大学里有一本关于设计模式的GoF书,这对我的C和C++编程很有帮助,因为我跳到Rails我试图使用我之前学到的那些设计模式,Rails是一个相对较新的范例对我来说,复数,动词,REST,DRY.你能给我一本推荐的Rails书吗,我可以很容易地理解我以前在大学里学到的东西.
PS我怀疑Matz知道GoF书,并将其应用于Ruby ...... :-)
我来自C,php和bash背景,它很容易学习,因为它们都具有相同的C结构,我可以将其与我已经知道的相关联.
然后2年前我学习了Python并且学到了很多东西,Python比Ruby更容易学习.然后从去年开始,我试图学习Ruby,然后是Rails,我承认,直到现在我仍然无法得到它,具有讽刺意味的是,那些被认为是易于学习的,但对于像我这样经验丰富的程序员,我只是无法将它与我之前学到的东西联系起来,我有两本关于Ruby和Rails的书,当我读到它时,没有什么东西被我的思绪所吸引,我接近放弃......
在ruby中,我很难掌握块的概念,为什么@variables可以被其他函数访问,$ variable和:variable有什么作用呢?在Rails中,为什么有像this_is_another_function_that_do_this这样的函数,所以因此ruby,它只是一个命名约定,或者它是使用此变量_can_do_this_function自动生成的.我仍然感到困惑的是,所有这些神奇的概念和事物都来自哪里?现在,1年的尝试和吸收,但仍然没有进展......
编辑: 总结:
has_one X好吧,请耐心等待我的困惑,至少我对自己诚实,自从我第一次尝试学习红宝石以来已经超过一年了,而且我不会变得更年轻..
所以
I learned this in Bash/C/PHP
solve_problem($problem)
{
if [ -e $problem == "trivial" ];
then
write_solution();
else
breakdown_problem_into_N_subproblems(\;
define_relationship_between_subproblems;
for i in $( command $each_subproblem );
do
solve_problem $i
done
fi
}
write_solution(problem) {
some_solution=$(command <parameters> "input" | command);
command | command $some_solution > output_solved_problem_to_file
}
breakdown_problem_into_N_subproblems($problems) {
for i in $problems;
do
command $i | command > i_can_output_a_file_right_away
done
}
define_relationship_between_subproblems($problems) {
if …Run Code Online (Sandbox Code Playgroud) 我有一个blacklist.txt文件,其中包含我想要使用sed删除的关键字.
这是blacklist.txt文件包含的内容
winston@linux ] $ cat blacklist.txt
obscure
keywords
here
...
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的,但目前无效.
blacklist=$(cat blacklist.txt);
output="filtered_file.txt"
for i in $blacklist;
do
cat $input | sed 's/$i//g' >> $output
done
Run Code Online (Sandbox Code Playgroud)