你擅长看日志文件吗?

我定期会面试人,我发现我很难想出方法来充分确定面试的技术知识。虽然他们可以展示他们的简历和他们过去的做法,但是很难告诉他们如何思考的。我不要问我自己无法回答的问题,我不认为这是公平的。许多人问基本的计算机科学问题,我可能得到错误的答案,因为我没有计算机科学背景,所以我倾向于问问题,看看候选人将处理情况。

一个技能,我认为是至关重要的对于一个开发人员调试技能。你可能会说,所有的开发人员都能做,但是一些远比别人做的更好。调试是我的一个最好的技能,我有大量的经验,它继承别人的项目。有鉴于此,我想出了一个技术测试,实际上可以告诉我如果一个候选人可以调试,技能很好地发展。

现在你问这个问题是什么?那天在我的片片崩溃日志,几站在我。看看下面的日志,看看你是否能发现为什么应用崩溃:

Thread 0 name:  Dispatch queue: com.apple.main-thread

Thread 0:

0   libsystem_kernel.dylib            0x35cab054 semaphore_wait_trap + 8

1   libdispatch.dylib                 0x342961c0 _dispatch_semaphore_wait_slow + 184

2   libdispatch.dylib                 0x342961f4 dispatch_semaphore_wait$VARIANT$mp + 32

3   libxpc.dylib                      0x3200e89a xpc_connection_send_message_with_reply_sync + 206

4   SystemConfiguration               0x374f5be6 _reach_server_target_status + 938

5   SystemConfiguration               0x374f6d56 __SCNetworkReachabilityServer_targetStatus + 14

6   SystemConfiguration               0x374dfaee __SCNetworkReachabilityGetFlags + 198

7   SystemConfiguration               0x374e0f7a SCNetworkReachabilityGetFlags + 190

8   MSNBC                             0x000cb9ec 0x1000 + 829932

9   MSNBC                             0x0006f998 0x1000 + 453016

10  MSNBC                             0x0006abfa 0x1000 + 433146

11  MSNBC                             0x00014d54 0x1000 + 81236

12  MSNBC                             0x0006ab6e 0x1000 + 433006

Last Exception Backtrace:

0   CoreFoundation                    0x3567188f __exceptionPreprocess + 163

1   libobjc.A.dylib                   0x37a18259 objc_exception_throw + 33

2   CoreFoundation                    0x356713b3 __NSFastEnumerationMutationHandler + 163

3   EmSea                             0x001f9c2b 0xe2000 + 1145899

4   EmSea                             0x00199bed 0xe2000 + 752621

5   EmSea                             0x00223453 0xe2000 + 1315923

6   EmSea                             0x002239c9 0xe2000 + 1317321

7   Foundation                        0x351b6c29 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 17

8   Foundation                        0x3510e6d9 -[NSURLConnectionInternalConnection invokeForDelegate:] + 29

9   Foundation                        0x3510e6a3 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 199

10  Foundation                        0x3510e5c5 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 61

在第一个,提示是,应用程序未能启动时间。我将使用这些崩溃日志作为一个测试,看看候选人能告诉我出了什么问题。无论是应用是我的,虽然我不能看到的代码,我可以立即发现问题。
  在第一个崩溃日志,应用程序调用SCNetworkReachabilityGetFlags主线程上。这个调用是一种阻塞调用,这意味着它不会返回,直到搞定,这叫可以花费大量时间返回,而且永远不应该呼吁主线程,特别是在应用程序启动。
  在第二个崩溃日志,它不是那么明显。开发人员所做的是:

:

for (NSString *string in someMutableArray)

{

    if ([string isEqualToString:@"Yuck"])

    {

        [someMutableArray removeObject:string];

    }

}


The array is getting modified while it is being enumerated. The fix is pretty simple.

NSMutableArray *deleteArray = [NSMutableArray array];

for (NSString *string in someMutableArray)

{

    if ([string isEqualToString:@"Yuck"])

    {

        [deleteArray addObject:string];

    }

}



[someMutableArray removeObjectsInArray:deleteArray];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值