V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  golang83  ›  全部回复第 1 页 / 共 1 页
回复总数  5
2019-09-03 16:51:34 +08:00
回复了 dopcn 创建的主题 iDev “程序就是算法加数据结构”这句话对于 iOS 开发来说有效吗
看着最近几年的的这些程序员,会用个某某框架、使用一种结构化的标签描述语言,搞出点页面,使用框架中的 API 完成点数据处理、和与后端的 http 协议程序进行点数据收发,就美其名曰前端开发工程师,看着那些使用 spring 全家桶,使用了一些消息引擎,搞点 nginx 和 docker 就美其名曰微服务,高级后端开发工程师。然后还有人得出前端比后端简单的结论,严格来说,前端程序可以复杂到让这些所谓的后端程序员做不出来,有些做 web 后端的居然页脚服务器端开发....... 看看 BAT 的校招中的笔试题吧... 实时证明,数据结构与算法合格的程序员才是程序员.... 程序员不是会用个框架堆积木才叫程序员!
2019-09-03 16:41:34 +08:00
回复了 dopcn 创建的主题 iDev “程序就是算法加数据结构”这句话对于 iOS 开发来说有效吗
人家说这话的人是大神,那么这句话的意思就是开发一个有价值的软件(程序),那么这样的程序一定是数据结构+算法,何为有价值的程序??比如 Excel,财务人员通过使用它可以进行简单的数据录入、统计、分析。光是数据的展示就是一个二维表,那么你要将一个二维表的数据进行各种运算已满足前面说的录入、统计、分析,请问没有数据结构与算法的基础支撑,你可以完成吗? 一个二维表又起码涉及到了线性表这种数据结构。再列举一个简单的例子:什么时候使用数组,什么时候使用链表,作为一个开发者,这个要不知道的话,开发个毛线程序呀?光是用库和框架,那和工地搬砖有啥区别?工地的建筑工人也是建筑行业,建筑师也是建筑行业,谁的社会价值更大?你让文科生去参与桥梁设计,海底隧道设计,估计他能让这个设计变得更有文化气息???呵呵...
前面有人说游戏开发的人来说,那我就说说,一个栈结构可以表示武器的弹夹,FILO 嘛,特性符合吧,假如子弹不是早期 CS 那种游戏,而是要参与物理计算的,那起码也是一个 Object 吧,早期的 CS 的游戏地图名称就叫 BSP,实际上 HalfLife 引擎来自与 id software 的 quake2 (如果我么没记错的话)的引擎,而 BSP 就是一种二叉树,用于解决游戏中的空间分割(二叉空间分割树),我记得没错就是卡尔马克大神搞出来的吧。再后来,室外大型场景场景渲染,LOD 多层次细节的使用,我们又用到了八叉树,哪怕是个 2D 的 MMORPG 游戏,只要联网,我不可能每个玩家的坐标都要向其他玩家进行广播吧?哪怕在一个地图,但不在一个屏幕,还有你看不到的 NPC 我也要把其坐标给你玩家?碰撞检测在一个 5000 人的服务器,我怎么做到哪些数据通知到哪些玩家,哪些数据不用通知某些玩家?网络 IO、服务器的算力资源如何节约?没有数据结构与算法的基础,这个事情就不用想了... 大端序转小端序要不要算法?如何编写一个不使用递归调用来进行遍历的二叉树?为什么需要这样一种二叉树?这涉及到早起的计算机栈空间很少,win2000 和 xp 我记得就 1024kb 吧。那么如果深度太深,也许就栈溢出了,所以可以尝试使用链栈来配合二叉树结构,从学习的角度,也可以对系统的栈空间有更深的理解,也达到了了解两种数据结构使用上的配合,以及线性表与树结构之间的关系...
2019-05-06 21:13:26 +08:00
回复了 denggj28 创建的主题 Go 编程语言 关于 YouCompleteMe 的 golang 代码提示
@denggj28
哥们,使用 vim-go,<c-x> <x-o>就可以了。或则你在做个 map 映射一下一个快捷键提示,ycm 默认的代码提示等太烦人了。自己就跑出来了。老子打个 Println 还需要你妹的提示呀。
如果你非要在 ycm 里面更好的支持第三方包,改改 vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/github.com/mdempsky/gocode/internal/
里的 gocode 源代码...

顺便吐槽一下,ycm 太几把重了... 编译又是 install.py 又是 gcc 又是 g++,尼玛自动补全又用 python 写个 completer.py 去调 gocode....

一个插件老子在某些 vps 上编译要 30 分钟。。曹。。。。。。一个 C++游戏服务器的重新 build 一下也不过 30 分钟

为了吐槽和帮你,我专门注册的这个网站,网站的问题也是搞笑,问我一个 ip 段属于那个公司..............
我以为程序员开发的东西不是应该保持 simple & easy to use 的嘛..

还有 vscode 哪里不好? vim 嘛是情怀,vscode 嘛也是情怀,微软就是情怀... ibm pcdos -> msdos -> win2 -> win3.1 -> win95 -> win98 -> winme -> win2000 -> compaq digital unix -> linux -> winxp -> winvista .... win10
对于我这种 91 年用电脑的人来说,dos borland c++ / vi/vim 就是情怀。我们用了那么多年的微软产品,visual studio 到现在 vscode,微软出品必属精品。其他的就用过 eclipse 和 andriod studio,写 html/css/js 感觉 editplus zen coding 这类轻量级文本编辑器完爆 n 多所谓的 IDE
goland 还要收钱??我的天...

还有 linux 下 go 的调试也可以在界面里面使用 vim-go,麻烦第一点的是清除断点,需要使用 sign,或则在 cli 下直接 dlv 都挺好,go 也可以用 gdb 调试 ,不过 golang.org 也推荐 dlv。
augroup godebug
290 au! * <buffer>
291 " 设置 dlv for vim-go-debug 的按键
292 au FileType go nnoremap <buffer><F5> :GoDebugContinue<CR>
293 au FileType go nnoremap <buffer><F6> :GoDebugPrint<CR>
294 au FileType go nnoremap <buffer><F7> :GoDebugStart<CR>
295 au FileType go nnoremap <buffer><F8> :GoDebugStop<CR>
296 au FileType go nnoremap <buffer><F9> :GoDebugBreakpoint<CR>
297 au FileType go nnoremap <buffer><F10> :GoDebugNext<CR>
298 au FileType go nnoremap <buffer><F11> :GoDebugStep<CR>
299 " 清除断点,清除前最好 sing place 一下,下面的是全部清除
300 au FileType go nnoremap <buffer><F12> :sign unplace *<CR>
301 augroup END
302 doautocmd godebug Filetype go

sign place 列出断点 id,单独清除可以在 vimrc 写个函数,先获取 corsor 的位置,然后获取行号,然后单独清除
但是手动也挺快。
2019-05-06 21:12:04 +08:00
回复了 noble4cc 创建的主题 Java Kotlin 相比 Java 有什么优势呢
我个人的浅见就是,如果 java 不属于 oracle 这种公司,那么 java 也是一个优秀的语言,但和 oracle 有关系的,都是垃圾!
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2626 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 13:59 · PVG 21:59 · LAX 06:59 · JFK 09:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.