V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 99 页 / 共 147 页
回复总数  2934
1 ... 95  96  97  98  99  100  101  102  103  104 ... 147  
2020-05-31 15:23:33 +08:00
回复了 0xljh 创建的主题 程序员 请问可以在 docker Linux 上开发 c/c++吗?
我就是这么干的,host 是 mac,写 linux 的代码,把代码挂进去在 docker 里 make,调试还能用 clion
2020-05-29 20:48:44 +08:00
回复了 Leon6868 创建的主题 Python 用 try...except...提高代码的稳定性,是否是好习惯?
哎。。。
为什么看起来好多人都不明白异常处理是干啥用的
建议学习一下 gcc 异常处理的实现方式感受一下


从程序执行流本身来看,异常的意义在于回滚调用栈

回滚调用栈。

如果你不确定是不是该上异常处理,那就判断一下此时是不是想把调用栈回滚到某个状态前。一个用异常处理的绝佳例子是 visitor 设计模式,当递归 visit 到某一个节点发生错误时,显然把 error code 穿过层层递归跟等于 nil 的 result 一起传回来是个非常蠢的做法(你甚至得给每一种节点类型的 visit 函数都写一遍 if err return ! shit !)


从业务逻辑上来看,异常处理机制是用来统一处理某封闭模块在各个阶段产生的同类错误用的

比如游戏读图,在每个关卡我要读不同的地图文件,文件读上来以后要解析数据结构,有可能读图失败,有可能结构不对,出错了以后我想让游戏回退到选图界面,那我肯定没理由在写游戏逻辑的地方还判断 loadNextStage()成功了没有,抛出异常可以让更上层的逻辑来处理同时打断游戏逻辑,其实还是对应回调用栈回滚的本质



再回头看为什么指南不建议你写 try except print 是不是理解一些了
2020-05-28 20:04:56 +08:00
回复了 johnnyleaf 创建的主题 Python 关于 Python3 重载运算符 与 引用
数学
约束
响应式



我觉得即使你完全不会函数式编程也该现场入门一下。。

每个点类存储一个变换函数,对于自变量来说,这个函数是设置时的闭包:

a=A(1,2)

a.x==lambda :1
a.y==lambda :2

对于因变量来说,这个函数是变换函数

c=a+b

c.x==lambda:a.x()+b.x()
c.y==lambda:a.y()+b.y()


当要取得 c 的值时调用 c.x()
=>(lambda:a.x()+b.x())()
=>(lambda:(lambda:1)()+(lambda:xb)())()
=>(lambda:1+xb)()


这不是比你递归通知约束对象计算新值要容易多了


至于怎么实现,约束方法本身已经是实现方法了,品一品
2020-05-28 12:23:40 +08:00
回复了 FieldFarmer 创建的主题 git Git 可以使用中文作为分支名?
git 连 emoji 都支持,中文放心用
2020-05-27 20:43:45 +08:00
回复了 killThemPuppy 创建的主题 Go 编程语言 为了规避面试难度而学 golang,这样做可以吗
你看到的都是 N 年经验的社招面经

你见过应届写的面经吗?
应届是不是都不需要写代码?


你品一品

(诶?!那应届生都问啥?)
因果关系是这样的

人们并不知道光速不变是不是对的
但是如果假设有绝对时空,相对光做运动使用伽利略变换时,发现了矛盾
并且,如果假设有绝对时空,那么光在绝对静止的介质中运动时,应该能测量出某些性质

然而并没有测出来这个性质
所以绝对时空很可能是错的,光速能用伽利略变换可能也是错的


那好了,只能假设另一种情况了,假设光在任何参考系中速度都不变,以光速运动时观察光它还能相对你自己以光速运动

这个假设看起来匪夷所思,但也能推导出一系列结论,然后人们假设这些结论是对的,去做了一些实验观测,发现居然完美符合


那没办法,不信也不行,实验已经证明了
2020-05-22 20:32:41 +08:00
回复了 dioxide 创建的主题 程序员 谁能给我说道说道这些"术语"区别?
补充一下
copy 的语境,被 copy 的东西就是原来的,完全没变,而且 copy 的时候并不一定产生了结果( copy - paste )
duplicate 后,你一定得到了两份东西,是有结果的,而且这两份东西中是否一定有一份是原来的东西,并不一定,只是长得一样

比如 file copied,此时你并不预期 copy 成了哪个实体,也许会写到后面想起来再说的什么路径里去
但 file dupplicated 此时已经有两个一样的文件同时存在

把某个数据 duplicate 一下发往两个地方,很可能两个副本都 不是之前那份数据的引用
把某个数据 copy 到新地方,那肯定有一个是旧的引用本身




call invoke apply 区分得还是比较清楚的,直接调用叫 call,委托调用叫 invoke,把固定好的变换作用在不同对象上叫 apply

-or/-er 和 -ee 是主被动关系,这个不应该搞混才对

cache 有一个建议译名叫“快取”,很好地体现了这个词的原本定义

safety 和 security 并不好直接解释词义,开车这个语境比较容易分辨区别
2020-05-22 20:18:06 +08:00
回复了 dioxide 创建的主题 程序员 谁能给我说道说道这些"术语"区别?
copy 创造一个跟以前一样的实体
clone copy to new and likely for modifying
dupplicate 把原来的实体变成两个

call 执行任意形式的子过程并期待返回
invoke 代理给某个东西执行动作然后期待代理给我返回
apply 给一个对象应用一个变换器,尤其是函数。因此 apply 的语境相当函数式

iterator 用来访问集合的东西
-ee 被遍历的东西


buffer 存任意中间数据的地方
cache 用于加快访问而特意放置中间数据的地方


safety 开车撞车死不了
security 开车不会被劫持方向盘
2020-05-22 20:03:26 +08:00
回复了 YahuiAn 创建的主题 问与答 各路大佬们!单 IP, IP 段, CIDR 之间如果做集合运算。
还有一种方式是直接把 ip 地址算成线性空间,每个区间有左右界,合并的时候先按左界排序,然后判断
下一个区间的左界有没有落在前一个区间中,如果在,那么区间右界设成下一个区间右界,如果否,那么第一个区间已处理完毕,可以处理 23 区间
2020-05-22 19:57:53 +08:00
回复了 YahuiAn 创建的主题 问与答 各路大佬们!单 IP, IP 段, CIDR 之间如果做集合运算。
首先不考虑域名和 url

我当时的实现大概这样

一个 - 指定的范围可以解析成若干个 cidr 或 ip

那现在只需要考虑 cidr 一种情况( ip 可以看做 /32 )
用二叉 trie 来存这些 cidr,在深度为 N 的节点有一个 cidr 对象表示这个 cidr 是 /N

如果某个节点左右子树都存在则递归向上合并节点

插入过程中途遇到某个节点说明这节点已经包含了待插入地址,跳过

然后就没有去重这一说了,匹配就是走这个 trie 跟插入流程几乎一样的

当时没有去重合并完还要导出合并结果的需求
2020-05-22 12:32:36 +08:00
回复了 li24361 创建的主题 程序员 话说, it 行业你们见过周围同事退休吗?
退休的没见过,财务自由早就可以退休了的见过不少
2020-05-20 14:38:11 +08:00
回复了 312ybj 创建的主题 问与答 同事离职了,留下了屎一样的代码给我改
hhhh 之前有个同事比你这个聪明一点:

Button **btn = new ...
for(...)btn[...]= new ...

btn[0]->setText();
btn[0]->move(x,y)
...


btn[1]->...


问他为啥写屎他说这才是灵活的好代码,这样界面布局改了改坐标数字就行了,而且能随时加按钮

“这代码你看得出哪个是哪个吗”
“看 text 啊,你没用 ide 吗,看一下引用就知道是哪个了啊”

卧槽好像很有道理!
我昨天刚在笑话有人把监听当真,今天就又看到一个讨论监听的帖子
现在我信了,lz 监听我
2020-05-12 21:30:59 +08:00
回复了 alexkhh 创建的主题 问与答 有没有这样的数字生成器?
random.shuffle

连 C++标准库都有类似的函数
从官方回复和其它网游经验来推测

你是不是买到了工作室出的钱或者装备什么的
2020-05-08 20:25:24 +08:00
回复了 zycpp 创建的主题 C++ 封装接口好枯燥好无聊
我也面对过类似的重复工作。。 几十万行源码,几千个字符串,要从静态的改成可动态返回的


然后我
写了一个扫描特定格式字符串的脚本,把所有要替换的静态文本都收集了起来

写了一个扫描翻译文件(预先翻译好的文本对照)的脚本,把上一个脚本扫出来的东西转化成结构化的对{原文:翻译}格式,然后有些漏掉的手动修复

写了一段自动机描述程序(将被自动机生成器编译成 c 代码),这段程序能确保以 On 的效率搜索到原文对应的翻译结构

写了一堆宏和 wrapper 确保上面这个函数的调用能正确嵌入到原来字符串在的位置

还有一段脚本把原文件里的字符串换成上面的宏





最后这一大坨代码全部合在了一起变成了一个 translate.py 确保没有第二个人能看得懂怎么做到的 XD

虽然还是修了半天原文件里的字符串以让它变成能被脚本识别的特殊格式

但并不很枯燥无聊不是吗
1 ... 95  96  97  98  99  100  101  102  103  104 ... 147  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2405 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 55ms · UTC 04:40 · PVG 12:40 · LAX 21:40 · JFK 00:40
Developed with CodeLauncher
♥ Do have faith in what you're doing.