招聘iOS开发,老板必问的5个问题

Timing Check -- hold/setup check原理介绍 STA中的setup、hold timing check 阅读详情
摘要:iOS应用开发呈现着水涨船高的势头,各类公司及个人均纷纷涉足,但如果你是一个iOS开发门外汉,在聘用iOS开发者时,你怎么知道该选择谁才是上上策?本文总结介绍了5个在选择iOS应用开发者时最应该问的问题。

iOS开发和许多其他软件亚文化一样,起源于少数开发者,但从2008年苹果对外发布SDK,供第三方应用开发者开发iPhone、iPad等iOS应用开始,iOS应用开发呈现着水涨船高的势头。从苹果首次开放App Store到现在,近六年时光悄然而逝,而这中间也已发生了许多改变。诸多大公司纷纷投入iOS应用开发,就连离岸开发也都涵盖其中,所有人都想要或需要一个搞iOS应用开发的。


但如果你是一个iOS开发门外汉,在雇佣iOS开发者时,你怎么知道该选择谁才是上上策?为此,Empirical Development联合创始人Marcus S. Zarra总结了5个在选择iOS应用开发者时最应该问的问题。

问题1. 请问你可以提供一份示例项目投标书吗?

iOS应用已经从“品牌”过渡到“应用”阶段,因此,开发者需要对应用开发更加认真地对待。作为老板的你,如果想要应用“形色味俱佳”,那么势必要和开发者一起进行应用规划,在完成各项规划之后,就可以正式开始应用设计与开发。

如果开发者无法拿出一份正式的项目投标书,那么你就需要问问自己,他们对于这个项目有多重视?他们能有多大的兴趣和精力投入到你的项目之中?

如果前来应聘的开发者对于“固定费用”或“按时计”都没有异议的话,那么开发者至少应该告诉你,他们认为多长时间能够完成该项目。还有,他们所提交的投标书,至少应该包括对整个项目的分解或功能说明,以及各方面的成本估算。

问题2. 你的投标书有多精确?

这个问题是连着上一个问题的。在还没有开始之前,竞标者就必须要对他们将要花费的开发时日进行估算,并且,还得保证100%的准确,当然,这不太现实,但却是软件开发行业公认的一项明规则。

因此,优秀的开发工作室或个人会对他们投入到每个项目中的时间进行详细的追踪记录,并将实际所花费的时间与原本投标估算时间进行对比。如果一个开发者没有对时间进行追踪记录而对他们的投标进行比较的话,他们根本就不知道自己的投标有多准确,更糟糕的是,你也根本无法知晓他们的投标到底精不精确。

高利润是一回事儿,投机取巧却又是另一回事儿,一不小心的话,难保你不是在玩火自焚。

问题3. 你的应用平均评级是多少?

App Store的应用评级系统可谓是非常善变,遭诟病也不是一两日的事情了。不仅没有评级过滤,而且还可以对用户进行设置,让他们生成一星级评论。对于大众而言,这显然不是一件好事。

另一方面,如果大部分应用是靠正规途径发布的,它们就根本得不到大量的一星级或二星级好评。用户更倾向于使用那些靠大肆宣传博上位或靠刷榜提升排名、下载量等非正规渠道推广的应用。如果一款应用的平均增长率低于三星级,那么就应该对它的排名及评级等一切信息表示怀疑。


相比之下,App Store中的便宜应用获取一星级评分的机会要高许多,至于免费应用获取一星级评分的事情更是不言而喻。

应用评级意味着:

  • 免费应用:如果开发者在App Store中有着大量的免费应用,这些应用的评级是高还是低?三星及其以上应该是免费应用的一般标准,如果低于三星,那说明要么开发不行,要么内容贫乏。
  • 付费应用:如果开发者有付费应用,那么平均评级应该更高。如果一个3.99美元的应用在三星之下,那么就非常可疑。对于任何4.99美元及其以上应用来说,四星是最低限度。
  • 介于免费和4.99美元之间的应用:这样的应用很难有一个硬性规定,用户可能会花一点钱去购买,但如果应用实在不咋地,那评级肯定会非常低。

因此,开发者应该对于他们在App Store中的平均评级、应用下载量的近似值或平均数了如指掌。如果应用平均下载量低于1000的话,那么评级的真实性就有待考察了。如果开发者不知道他们的App Store评级,这是一个很危险的信号。应用的idea毫无新意或内容贫乏所造成的应用下载量偏低是一回事,但不关心评级却又是另一回事。

问题4. 请简单地描述一下你的测试过程

相比上一个问题,这个问题对专业能力要求更强。如果来面试的是一个独立开发者或小型开发团队,那么这个问题会让他们感到紧张。正常情况下,小型开发团队无法为他们所开发的应用提供充分的测试,因此,他们可能会如此回答——“我让客户端处理测试”。对于小团队而言,这个回答可以接受,而较大的开发团队则应该采取内部测试的方法。


常见的测试方法:

  • 聘请一个或多个QA工程师;
  • Round Robin测试法,将测试交给不积极编程的开发人员;
  • 第三方测试。

应用测试有一个大忌,就是不要让开发者自己对应用进行测试。也许他们能够测试应用能否正常运行,但却永远无法测试出边缘情况或意想不到的用户习惯。

问题5. 请简述一下你的代码审查过程

这个问题又是一门软科学。如果你雇佣的是一个独立开发者,那么他/她将不能对自己的代码进行审查,而对于规模大于一的开发团队,应该都有一个严格的代码审查制度。

系列阅读:

招聘移动开发,老板必问的10个问题

setup time和hold time的计算 内容仅仅为了方便记忆,与原理无关 阅读详情

相关推荐

硅芯思见:setup和hold violation原来是这么回事儿

题外话:西安发生了疫情(新冠和出血热),但是一切都会过去,雨后总会天晴!!! 在后仿真过程中经常会遇到关于setup和hold violation的问题,但是关于setup和hold time的产生原因和由来很多人还比较朦胧,为此本文通过解剖一个边沿触发器简要说明setup和hold产生原因。 解剖示例 上图为触发器的简要示意图(clk和’clk为反向时钟)。T1和T4同时导通,T2和T3同时导通,且T1、T4和T2、T3导通状况互反。其中T1、T2、T3、T4均为传输门,均为电平敏感,所以所谓的

m0_46345246的博客 7784

iOS面试会问什么?

又到了金九银十的跳槽季,相信有很多小伙伴都不满足于目前的状态,不管是薪水还是发展,都有些跳槽的小心思,毕竟人往高处走,水往低处流,那就蠢蠢欲动起来吧。因为找到一个喜欢的公司还是要花费一定的功夫的,当然也有运气成分,最近我也是参加了很多面试,下面就把现在面试必问的和经常问的问题和知识点罗列了一下,巩固一下知识,加深印象。 废话不多说,直接看看都有哪些问题经常被拿出来问的吧。(后续会补充…)GCD,多线

Coder_Han的博客 856

STA -- Setup time & Hold time 详细解读

Setup time & Hold time 一般来说,setup可以通过时钟频率来调整,而hold time是不行的,是一定要满足的。 对于某个DFF来说,建立时间和保持时间可以认为是此器件固有的属性。 在理想情况下,只要在时钟沿来临时,有效数据也来临(时钟沿之前或同时),则能够正确采集到数据;而在时钟沿之后(或同时),即使数据发生变化,也不会影响DFF的输出了。然而在实...

darknessdarkness的博客 6293

[Note]ICG(时钟门控)为什么是用setup和hold检查

那就先看 Master 锁存器是如何对输入数据进行锁存的,数据的路径如下图中的红线所示,当时钟 Clk 为 0 时,数据从 D 输入(假设数据输入为 0)经过反相器历时 t1,数据变成 1,经过与门历时 t2 数据变成 1,再经过或非门历时 t3,由于此时数据为 1,所以经过或非门 Q 端输出为 0,Q 端输出又作为下面的或非门输出为 1,并且在此历时 t4,最终在 Q 端输出 0,此时数据便顺利被锁存起来。触发器的hold时间,是clk到与门的时间晚于D到与门的时间,导致的hold时间。

qq_41034231的博客 2204

静态时序分析之建立时间setup time和保持时间hold time

1、概念: 建立时间(Tsu:set up time)     是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被稳定的打入触发器,Tsu就是指这个最小的稳定时间。 保持时间(Th:hold time)     是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被稳定的打入触发器,Th就是指这个最小的保持时间。 触发器延迟时间(Tco:CLK-to-Q dealy of FF)    触发器输出的响应时间

linpeng_9527的博客 1万+

setup,hold修复

信号完整性(SI,signal integrity)violation的一种,SI据我所知也就只和crosstalk有关。对于case1的解决方案在发生以下情况不适用,在同一工作条件下,前一个模块存在hold违例,经过插buffer修正,却因此导致下一个模块存在setup违例。4)换setup/hold corner下skew更小的cell,如Iwt,这样setup和hold互卡情况会缓解。2)路径上的crosstalk(串扰)过大,对setup和hold都有影响。2)clock的ndr设置好。

Yansiwei777的博客 4358

《每日一题》NO.6:如何理解Setup time 和 Hold time?

每日一题,快来解答吧~

Eecourse的博客 1017

setup time和hold time的周期问题

为什么计算setup time的slack时需要考虑加周期,hold time时不需要? 总结一: 因为计算setup time时,由于存在数据传输data delay,Launch edge与Capture edge并不对应时钟信号source clock的同一个时钟沿,因此需要考虑加周期。单时钟周期检查的时候工具默认capture edge-launch edge=1个周期。 Hold ...

weixin_30892889的博客 1858

从晶体管到STA:深入理解setup和hold时间的物理本质

本文深入探讨了数字电路中setup和hold时间的物理本质,从晶体管级的DFF工作原理到STA时序检查机制。通过分析D触发器的内部结构和工作流程,揭示了Tsetup和Thold的物理来源及其在静态时序分析中的关键作用,为芯片设计中的时序收敛提供了实践指导。

http9protocoller的博客 184

IC常用基础知识1-setup time和hold time 总结

文章目录1. 静态时序分析与动态时序分析2. 同步设计中的建立时间和保持时间3. 时钟相关的概念3.1. 时钟偏移(skew)3.2. 时钟抖动(jitter)3.3 占空比(Duty Cycle Distortion)4. 异步信号中的恢复时间和撤销时间5. Timing path6. 到达时间和需求时间7. launch和capture edge8.setup time和hold time时序图9. 另一种表达方式10. 相关问题10.1问题110.2 问题210.3 问题310.4 问题410.5 问

mu_guang_的博客 3万+

为什么会有建立时间setup和保持时间hold要求

为什么会有建立时间setup和保持时间hold要求D触发器结构为什么有建立时间要求(setup)为什么有保持时间要求(hold)建立时间、保持时间跟什么有关 D触发器结构 要知道为什么会有setup、hold要求,首先要清楚D触发器的结构 D触发器可以由静态逻辑实现,也可以由动态逻辑实现,这里仅讨论静态CMOS D触发器的结构 构成一个D触发器最普遍方法是采用主从结构,由一个负latch(主级)和正latch(从级)串联而成,而latch可以采用传输门构成的多路开关MUX来实现,见下图 而具体的电路结构如

qq_31006535的博客 4105

硬件工程师面试必看:Setup和Hold时间详解及常见电路问题解析

本文深入解析了数字电路设计中Setup Time(建立时间)和Hold Time(保持时间)的核心概念、物理本质及违反后果(如亚稳态)。文章结合硬件工程师面试高频问题,系统阐述了时序违规的排查修复方法,并串联分析了竞争冒险、时钟偏斜、跨时钟域传输等常见电路问题的内在联系与解决方案,旨在帮助工程师构建扎实的时序分析能力。

rgv23456789的博客 220

Setup和Hold(Max/Min)分析

Setup和Hold(Max/Min)分析 Vivado时序分析概念setup time, hold time reference What is Setup and hold time in an FPGA? Propagation delay in an FPG...

dengyindai1024的博客 2262

set_data_check专题[使用,report_timing,setup/hold检查]

set_data_check用于约束『数据-对-数据』的『建立保持』时间检查,通常被称为非时序约束 ( non-sequential constraints ), 理论上set_data_check 可以设在任意的两个data pin 上,其中一个pin 称为 constrained pin 类似于寄存器的data pin, 另一个pin 称为related pin 类似于寄存器的clock pin.

cy413026的博客 1万+

IC设计时序分析总结(setup,hold,CDC)

在IC设计中,时序逻辑因为能够记忆且实现流水线操作所以成为芯片运行的基础,芯片设计中最重要的是保证寄存器采集到正确的数据,也就是满足setup和hold time,不满足时会导致亚稳态,即寄存器传递出去的数据是错误的,且更严重的是亚稳态由于驱动不足,会导致下下级寄存器也出现亚稳态,类似于多米诺骨牌效应导致整个芯片大面积崩溃。满足时序要求主要分为两种情况:同步和异步。

weixin_61092302的博客 2195

Verilog中用于时序验证的系统任务[setup][hold][skew][width][recovery][removal]【STA静态时序分析】

下列时序检查语句错误的是() A. $setup(posedge clk, data, tSU) B. $hold(posedge clk, data, tHLD) C. $setuphold(posedge clk, data, tSU, tHLD) 答案:A 解析: 在时序检查函数中,$setup 函数比较特殊,格式是: $setup(data_event, reference_event, limit); 其他常见的检查是: $......(reference_...

DengFengLai123的博客 1万+

数字电路设计实战:如何用Verilog避免setup time和hold time导致的时序问题

本文深入探讨了数字电路设计中如何通过Verilog避免setup time和hold time导致的时序问题。从基础概念到实战技巧,涵盖了异步信号处理、组合逻辑优化、时序约束设置等关键内容,并提供了跨时钟域处理和工艺角影响等高级解决方案,帮助工程师有效应对高速电路设计中的时序挑战。

weixin_30566063的博客 543

顺序功能图基本结构

顺序功能图(Sequential Function Chart,SFC)是一种用于描述工业控制系统中顺序控制流程的图形化编程语言,广泛应用于PLC(可编程逻辑控制器)编程。其核心思想是将复杂的控制流程分解为多个有序的步骤,通过逻辑条件实现步骤间的切换。顺序功能图通过图形化的方式简化了复杂控制逻辑的设计,尤其适用于需要严格顺序控制的工业自动化场景。[初始步] → 转换条件1 → [步1] → 转换条件2 → [步2] → ...[步X] → → [步B] → 转换条件B → → [合并步]

ayingqin1的博客 1226
上一篇: 直接拿来用!最火的iOS开源项目(一)
下一篇: 招聘移动开发,老板必问的10个问题
liu_yaoyang
博客等级 码龄19年 5粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值