V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nnws2681521
V2EX  ›  PHP

如果给了你一个项目的源代码,你确定能看得懂吗?

  •  
  •   nnws2681521 · 2018-03-22 14:52:00 +08:00 · 5744 次点击
    这是一个创建于 2473 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如给你了一个项目的 C++或者安卓或者 IOS 或者一个论坛或者一个博客的源码,放在那里你确定能看的懂? 好比一个博客系统源码,首先设计师没有告诉你每个文件夹到底起什么用吧?怎么能明白

    16 条回复    2018-03-23 12:42:53 +08:00
    xomix
        1
    xomix  
       2018-03-22 15:00:44 +08:00
    有文档肯定是看文档。
    没有文档怎么办?
    1、先看看能不能跑起来测试,如果能,跟着测试拦截对应功能,然后由点到面的放大了看,一个下午前后你应该能找到整套项目的大致框架。
    2、无法编译无法运行属于不能测试的项目,这种一般我先去数据库转一圈看看数据库结构什么的然后按照实际业务需求找数据库关键点,然后搜索反查。没有数据库的就看看资源文件找到几个重要的入口点,按照目录结构大致浏览一下等等。
    3、如果这些都没有……我觉得你可以随机打开一个文件放着等下班,然后下班找新工作,真的,这种东西谁要看啊什么也没有一团代码没有任何说明没有任何可以下嘴的地方,就每天开几个代码窗口糊弄领导混工资找新工作吧。
    hidder
        2
    hidder  
       2018-03-22 15:24:02 +08:00
    楼上正解,遇到这种公司不跑,难道留着过清明?
    luoway
        3
    luoway  
       2018-03-22 15:27:00 +08:00
    @hidder 看不懂就跑?

    编程是相通的,差别只在语言语法。
    啃还是能啃动的,就看钱给没给够。
    guoyuchuan
        4
    guoyuchuan  
       2018-03-22 15:32:05 +08:00
    公司给我的项目,我是看不懂。
    pkookp8
        5
    pkookp8  
       2018-03-22 15:39:23 +08:00 via Android
    首先看怎么编译,看文件夹名字猜内容
    当然如果名字都是 abc,nicai 这样的,趁早跑路
    能编译通过,反复上述步骤。不过一般方法是改问题的过程中熟悉代码并创造新的代码
    qwx
        6
    qwx  
       2018-03-22 15:47:31 +08:00
    代码混淆了解一下。搞逆向之类的怎么可能存在看不懂的代码,时间问题而已。
    geeksu
        7
    geeksu  
       2018-03-22 15:47:34 +08:00
    先跑起来再说,然后断点或者打印 log,把程序逻辑跑清楚
    zjsxwc
        8
    zjsxwc  
       2018-03-22 15:50:45 +08:00
    只要是之前被不少人过维护的代码,

    给钱花时间总能看懂的,但问题是那点工资和耗费的精力值不值,不值就跑,很正常的
    nnws2681521
        9
    nnws2681521  
    OP
       2018-03-22 16:52:11 +08:00
    问题是 web 项目的文件夹建的太乱了,如果你要是英文意思最起码跟着英文意思来吧,坑爹的是不是根据英文意思建的文件夹,而是这个字母英文里面是桌子的意思,咋看懂
    yang2yang
        10
    yang2yang  
       2018-03-22 17:53:24 +08:00
    其实最重要的是要有经验,也就是你大致了解这个业务,和编写过业务代码,才能看懂。不然,必须有人讲解还是加上自己辛辛苦苦看
    justinwu
        11
    justinwu  
       2018-03-22 20:59:59 +08:00 via iPhone   ❤️ 1
    一看就知道没撸过 souce insight,

    当年维护芯片厂商给的驱动代码、专有 rtos 内核代码,有谁指导谁来讲解,为了解 bug 还不是钻进去看,一点一点看、加打印看 log、gdb 调试。

    拿人钱财替人消灾,你来就是来解决问题的,动不动就喊跑,这个不好。

    注意:一定要带着问题去看,不能漫无目的去看。
    iRiven
        12
    iRiven  
       2018-03-22 21:34:09 +08:00
    懂是不可能的 我自己写的代码 我自己都看不懂,改代码改多了,很多变量名都是约定俗称的样子,函数明什么的,看名称,剩下一半靠 ide 补全
    Jimjay
        13
    Jimjay  
       2018-03-23 07:57:23 +08:00 via Android
    一看楼主就没当过接盘侠
    GentleSadness
        14
    GentleSadness  
       2018-03-23 10:16:52 +08:00
    @xomix 无法编译无法运行属于不能测试的项目,这种一般我先去数据库转一圈看看数据库结构什么的然后按照实际业务需求找数据库关键点,然后搜索反查。没有数据库的就看看资源文件找到几个重要的入口点,按照目录结构大致浏览一下等等。

    @luoway 上面这种情况都运行不了,你觉得还能救?
    xomix
        15
    xomix  
       2018-03-23 10:37:26 +08:00
    @GentleSadness
    3、如果这些都没有……我觉得你可以随机打开一个文件放着等下班,然后下班找新工作,真的,这种东西谁要看啊什么也没有一团代码没有任何说明没有任何可以下嘴的地方,就每天开几个代码窗口糊弄领导混工资找新工作吧。

    这不是给了解决方案了吗,拿着工资找工作不好吗,非要辞职没饭吃怎么办
    vagranth
        16
    vagranth  
       2018-03-23 12:42:53 +08:00
    按顺序来
    1. 如果代码自解释,变量命名和函数命名规范,那么直接看代码;
    2. 如果有文档,结合文档看代码
    3. 如果有具体 Bug 需求,结合 Bug 加调试语句分析代码
    4. 如果没有需求就是瞎看,代码又混乱,那么滚犊子
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2344 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.