刚入职不久,但是部门产品已相对成熟,平时的工作多是看代码、修 bug,做需求也不会对原有代码结构做太大的变动;觉得如果真的要自己动手写这样一个产品会非常吃力。
请问平时自己学习时该如何提高面向对象编程的能力?
![]() | 1 hv3s1 2019-01-31 22:38:34 +08:00 ...现在什么框架不是面对对象。 除了 C。其他基本上都是面对对象。 提高编程能力,疯狂 CODE 吧。 |
3 junjieyuanxiling 2019-01-31 22:45:32 +08:00 那就 gtk。 |
![]() | 5 di94sh 2019-01-31 22:59:55 +08:00 via Android 可以了解 go 的面向对象。c 也能写出来 |
7 a href="/member/Riverrun" class="dark">Riverrun OP @di94sh 感谢,去了解一下 |
![]() | 8 anyele 2019-02-01 00:12:10 +08:00 via Android 说下我对楼主问题的理解,其实我觉得楼主想表达继承封装多态在实际代码里的应用? 还有各种设计模式怎么应用到业务代码里对吗? |
9 q8164305 2019-02-01 00:21:25 +08:00 via Android 先写出来,再考虑写好 |
10 q8164305 2019-02-01 00:23:58 +08:00 via Android 其实不用面向对象照样能写代码的,就是不好维护而已,等你触到痛点,自然就会了,我刚开始写的时候也是看不懂面向对象干嘛用的,不用面向对象照样写代码,但是后期迭代的时候触到痛点自然就会了 |
11 danc 2019-02-01 00:29:41 +08:00 via Android 那就找个对象呗。去 TM 的面向对象,C 语言那种方式不是挺好的么 |
12 GeruzoniAnsasu 2019-02-01 00:29:47 +08:00 个人经验,写点 MFC 的小东西 不用什么大项目,随便什么对话框小工具就足够了 以前学编程的时候,c++看完类一脸懵逼一点概念都没,然后稍微学了学 MFC 突然开窍了,MFC 是纯 C++(C with class)搭起来的框架,没有任何扩展语法和机制,最多有点点宏,对学习 OO 编程很有帮助( c++语言限定) |
![]() | 13 Baymaxbowen 2019-02-01 01:11:38 +08:00 via Android 当我发现自己以前写的代码和一坨屎一样的时候 |
![]() | 14 Andiry 2019-02-01 01:47:27 +08:00 ![]() C 也能面向对象,看看 Linux kernel 里 VFS 的接口就懂了 |
15 RqPS6rhmP3Nyn3Tm 2019-02-01 01:58:17 +08:00 via iPhone ![]() 现代的 c 也用了不少面向对象的模式 Design pattern 还是要看看 |
16 ma9806 2019-02-01 02:01:18 +08:00 via Android ![]() 找一个对象 |
![]() | 17 lifeintools 2019-02-01 05:56:07 +08:00 先写出来 写够 10W+ |
![]() | 18 ericgui 2019-02-01 06:09:58 +08:00 你自己写个 MVC 框架,不管多丑,不管多垃圾,能跑起来,自己用它写个博客 |
![]() | 19 zhangroyaso 2019-02-01 08:06:00 +08:00 我一直。卡在这。 mfc 是 win 的吗?没有 win 的我怎么办 其实 lz 应该想要的和我一样,一条学习的道路能弄懂面相对象,不管是哪本书还是某个博客系列 |
![]() | 20 Kaiv2 2019-02-01 08:09:22 +08:00 via Android 试试一个完成一个项目 |
21 shylockhg 2019-02-01 09:09:48 +08:00 ![]() 用 c 实现面向对象思想呗, 不要 c++/java/python 这些原生实现影响了, 关注面向对象的三大原则,自己用 c 模拟。 比如 Linux 内核的 container_of。 |
![]() | 22 chiu 2019-02-01 09:11:29 +08:00 C 也可以写面向对象的 C |
![]() | 23 SorcererXW 2019-02-01 09:13:38 +08:00 学一下设计模式 |
![]() | 24 zhwithsweet 2019-02-01 09:16:15 +08:00 via iPhone 来吧,haskell。Fb 好玩一万倍(滑稽 |
![]() | 26 frankyxu 2019-02-01 09:58:41 +08:00 ![]() 首先,你得有个对象 |
![]() | 27 guanhui07 2019-02-01 10:03:28 +08:00 看看设计模式,把各种语法用熟悉 应用到写各种封装类库 |
![]() | 28 no1xsyzy 2019-02-01 10:30:56 +08:00 C 的话不妨稍微看看 CPython 的源码? 或者是哪个地方解释为什么 Python 方法需要 self 为了弄得像是 C OOP 一样。 |
![]() | 29 StubbornC 2019-02-01 10:39:49 +08:00 没点进来之前还以为是找女朋友经验贴,失望啊阿仔(狗头 |
30 wingpui 2019-02-01 10:44:09 +08:00 楼上大大们都说得很对啦,经验到了,自然会升级的,技能都可以领悟的 |
![]() | 31 OMan 2019-02-01 10:45:21 +08:00 首先,你要有个 对象。之后才能真正的实现,面向 对象 编程。 |
![]() | 32 hievan 2019-02-01 11:04:06 +08:00 先找个“对象”吧. |
![]() | 33 zhazi 2019-02-01 11:23:41 +08:00 via Android 不知道楼上一群人在说啥 你可以尝试用编程语言写个小短篇故事 比如 “一个人在逛超市” 如何形容这个人,这个人在超市里能干什么,这个人本身能干什么,超市如何形容 用汉语描述一遍,用编程语言表述一下你的汉语描述 如果程序读起来没有歧义我觉得你就知道什么是面相对象了, 如果把这句话转换成公司的商业业务你也应该能找到业务中的 “人”和“超市” |
34 wei375653972 2019-02-01 11:28:48 +08:00 首先得找个对象,才能面向对象 你说是吧 |
![]() | 35 libook 2019-02-01 11:46:07 +08:00 理论都了解的话,还是的练,自己做点小项目啥的,比如做些工具库,尝试使用面向对象的思想来设计。 不过面向对象不能一招走天下,其他的变成思想最好也看看,项目上灵活使用。 |
![]() | 36 qwingmix PRO 当你有的一个项目不停地增长的时候,必然遇到 OOP 来解决重复代码的问题。 不然你要改动的个东西, 就要是 N 个重复代码的地方改动,效率会非常低。 这是最基本款的面向对象的好处。 |
![]() | 37 tiedan 2019-02-01 16:17:47 +08:00 找个对象 |
![]() | 38 ByZHkc3 2019-02-01 16:27:42 +08:00 new Object(); Object.create(); const MyGirl = {name:'Anna'}; const MyGirl = function(name){ return { } } |
![]() | 39 kakudesu 2019-02-01 16:38:07 +08:00 分三步把大象装进冰箱 ![]() |
40 xxgirl2 2019-02-01 16:44:45 +08:00 |
![]() | 41 zeroDev 2019-02-01 16:51:14 +08:00 via Android 自我感觉就是写,然后看文档怎么写 日常写 Python |