原创不易,转载请注明出处: https://www.cnblogs.com/bee0060/p/16456762.html
作者: bee0060
发布于: 博客园
本文想说的不是看待问题的不同角度。 而是看待问题有几个维度。具体是什么意思? 请听我慢慢道来。
当以一维的视角看待问题时,问题是比较简单的,只有对和错、黑和白、0和1。
当以二维的角度看待问题时,我们看到的不再是一个单一的点,而是很多点的集合。就像下面这张图,你很难简单的说清楚这张图是什么颜色的:

这时的问题就像这张图一样,这边可能是紫的,那边可能是蓝的,上面有点黄,下面又有点黑。
如果以二维的视角看问题,我们能发现一个问题是有很多个点组成的,不同的点有不同的特性。不再是单一的是与否了。要解决这个问题,除了要看各个点如何解决,还要关注各个点之间的关系,否则方案很可能顾此失彼。这中间会需要很多的折中和取舍,可能最终能解决的方案,在每个单一的点看起来都不是最优的解,但综合全局后,却是少有的可行方案之一。
当以三维的角度看待问题时,我们会发现,同一个问题的同一个点,看的角度不同时,会得出截然相反的结论。例如下面这张图:

当两个人的观点截然相反时,也未必是一对一错的。
事物都是立体的,并非只有一面。
而如果我们可以做到看一个问题,从多个角度去观察和思考,我们至少会收获以下好处:
以上几个好处,都能帮助我们更好的解决问题。
二维和三维感觉好像区别不大。 咱们可以这么区分,二维是看到事物的不同方面, 三维是同一个方面(或一个点),通过不同角度看,会得出不同的结论。
我想说的第四维,是时间,可能大家也想到了。一个问题,有可能今天是这样的,明天却是那样的。 正所谓三十年河东三十年河西,这是事物发展的普遍规律。 例如早上太阳在东边,晚上太阳却在西边。很浅显的道理,但是当我们面前就摆着一个问题的时候,却未必总能想起来这个道理。
咱中国有句话,叫“用发展的眼光看问题”, 说的也正是如此。
当我们工作中要解决一个问题的时候,有时不光需考虑问题现在是怎样的,还要考虑之后会怎样,或某个方案会引起什么变化? 即不光解决当下的问题。
例如要解决一个高并发问题,可能不光要想当下的高并发如何解决,还要考虑存储的数据量增长后的次生问题,出问题后如何调试和定位,如何验证当前方案的有效性。由于不同量级的方案和成本也会不同,一般没必要一来就上最高规格,而是会考虑在可接受成本内,当前量级下,什么方案最合适,方案的有效期或有效范围是多少,什么情况下会失效,失效后要如何做?等等等等。
很具体的例子不太好想,或者我们可以聊点宽泛一点或通俗点的例子。
对于咱程序员,一个很直接的例子是:
写代码和改bug的时候,不光考虑实现功能,还会考虑对未来的影响,即可读性、扩展性、可维护性等等
跟程序员相关的例子还有很多,如一些实践和工作方式也在发生着变化:
十几年前的web项目,一般由Java/.net程序员包办前端的工作,大约十年前,前端开始成为独立的岗位,再到五年前左右,开始推崇全栈程序员,以后可能不再推崇全栈,而是出现更细的分层和分工。
过去很多年到现在,为了减少请求数量,前端资源大多推崇将多个依赖打包到一个bundle中。但是http/2普及后,每个依赖单独打包可能是更好的方式。
过去大多软件公司用瀑布流的方式工作,而现在,越来越多的公司在跑scrum或其他敏捷开发方式了。
聊着聊着,好像内容慢慢有点跑偏了,那既然如此,那不妨偏得更远一点吧。
除了工作相关的,如果回顾一下我们自己的生活和经历,也会发现处处都是例子。
例如,这几十年来,“好工作”的定义一直在发生变化,国企员工、公务员、老师、医生、律师,或者近几年当程序员应该也是挺不错的工作。
而一个好的前端工程师的标准也一直在变化:
这个标准会随着时代发展不断变化。从中我们会发现一条很残酷的事实:
我们的一些技能会持续贬值直至一文不值
有点悲观是不是?
因为这个原因,可能会逼着我们不得不一直学习,否则就有被淘汰的风险。将来某一天,很可能没人在意你会不会react/vue,就像今天没什么人在意你会不会jquery一样。
但是太极有阴阳,事物总有两面性,积极的一面是:
如果持续学习,总有弯道超车,后来居上的机会。
中性一点的描述是:
同一个技能,在不同时代的价值可能截然不同。
一不小心就扯到职业发展的话题上来了,怎么还卷上了呢?抱歉抱歉,本小节的目的不是要叫人发愤图强,只是想阐述这么一个观点:
今天认为理所当然的事情,明天可能会变得无足轻重甚至匪夷所思。
这一到四维其实符合我们的现实世界,立体空间加时间。 那么还有没更多的维度? 我认为是有的,应该有无限多的维度,只看我们能否发现。目前我能想到的只有五个维度。
我想的第五个维度,是问题所处的上下文,或者也能叫环境,英文应该是context.
这个环境可以是地理上的,也可以是不同的文化,如地域文化、企业文化、种族的文化等等。
例如:
每个人考虑问题所使用的维度各不相同,我说的第五个维度仅仅是我个人的,别人的第五个维度也许是其他维度。
其实文章写到这,第五个维度的例子已经不那么重要了。
重要的是,我们可以不断思考和探索,发现越来越多的维度,让我们对问题的理解不断深入,用更多元的视角看待问题,并以此找到更多的解决方案。
好了,就到这吧。谢谢观看。
原创不易,转载请注明出处: https://www.cnblogs.com/bee0060/p/16456762.html
作者: bee0060
发布于: 博客园
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s