学习
实践
活动
专区
工具
TVP
写文章

对几个软件开发传统观点的质疑和反驳

很多编程语言,利用语法糖,连简单 get、set 方法都可以省了(比如 Objective C),而加这种注释的做法却依然在反软件、反人类而行。 设计文档要详细,细化到方法定义 持这个观点的大有人在。对于这个观点我并不是完全反对,如果你要说设计文档需要“ 详细到可以指导编码” 我还能同意,但是我确实非常不喜欢详详细细的设计文档。 我了解一些对日外包公司,程序员拿到手的设计文档就是细化到方法定义了的,如果你有能力有志气,在中国最好就不要做外包,尤其是对日外包,这样的公司拒绝你的一切思考,就是在摧残人才。 ,单个方法的行数不能超过 200; 任意两个类之间重复代码行数不能超过 10 行(你可能知道重复代码检测工具 Simian); …… 这些硬生生限制,都是反软件、反人类的。 我知道很可能你会有不同看法,这太好不过了,但是善意地提醒你,请一定仔细思考一下,不要被公司的精神和文化洗了脑,我们都是程序员,我们最清楚,或许也都经历过那些针对程序员、软件开发荒唐可笑、乃至不可思议的做法

16810

新的火花:直播软件开发传统农业的结合

此时蓬勃发展的直播软件开发为农业带来了新的市场,新的希望。直播软件开发传统农业的结合碰撞出了新的火花。 二、线下建立完善体系 除了通过直播软件开发进行线上带货之外,建立完善的线下体系对于规范引导市场也有重大意义。通过建立“严选线下供应链+直播软件开发”的良好体系,促进了农产品的销售。 直播软件开发为农特产品打开了销路,除了要完善平台和系统之外,线下的监管也十分重要。 直播软件开发系统与农业的完美结合,完善线下体系,是促进农民脱贫的中坚力量。 这种互利共赢的模式显示,直播软件开发传统农业的碰撞是十分可行的。 直播软件开发作为新兴产业,促进了各行各业,尤其是农业焕发了新的生机,及时对其加以规范和引导,对于农业现代化、农民脱贫致富的意义深重。

34040
  • 广告
    关闭

    有奖征文丨玩转 Cloud Studio

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    传统图像边缘检测方法

    基于图像边缘灰度剧烈变化的特征,传统的边缘检测方法往往根据灰度变化的情况进行边缘提取。 本文主要介绍传统边缘检测方法的基本思路以及实现方法,主要对 Sobel 边缘检测方法,Canny 边缘检测方法进行具体分析,讨论了其优缺点,最后指出了对传统边缘检测方法的一些改进措施。 传统边缘检测方法的基本思路 由于物体边缘处的灰度变化剧烈,因此传统的边缘检测方法大多利用这个特点,通过计算像素的梯度判断当前像素点是否为边缘像素点。 Canny 边缘检测方法在提取边缘的同时对噪声做到了很好的抑制,在传统边缘检测方法之中,Canny 算子也凭借其良好的检测效果,简单的实现过程,成为最经典的边缘检测算法之一。其基本过程如下图所示。 传统优化过的 Canny 边缘检测算法 针对传统 Canny 边缘检测方法的不足之处,许多研究者纷纷提出了改进办法,进一步提高 Canny 边缘检测算法的性能。

    35310

    ThinkSNS揭秘软件开发方法

    ** 软件开发行业是:供应商觉得客户少,而客户觉得找不到软件开发公司。**很多人想开发软件,但是他们却找不到可靠的途径或者软件定制供应商,甚至不知道该从何入手。 我总结有四个软件开发方法,各有千秋,希望能够给各位看客提供参考: 方法一:自己组建团队进行软件开发 前提:充足的资金、等得起的时间。 不管你的资金是自己/团队/公司/投资等方法获取的,但是资金必须足够,否则中途资金链断裂,软件开发就半途而废。 、最中规中矩的是方法三、最省钱的是方法二。 **你要问我到底哪种软件开发方法好,我就说不清楚了,俗话说的好对症下药才是最好的。

    33310

    深度学习“盛行”,传统方法何去何从?

    清华大学计算机系长聘副教授朱军 近日,朱军博士接受了CSDN的专访,采访中分享了目前最新的研究进展,深度学习与传统机器学习如何融合发挥最大作用,成为优秀青年科学家的必备特质,以及在CCAI 2017上的分享与筹备工作 传统机器学习 CSDN:在深度学习“盛行”的大环境下,如何看待相对来说比较传统机器学习(如支持向量机、贝叶斯学习、决策树等)? 其次,深度学习不是孤立的,它的进展与所谓的“传统机器学习”是分不开的,不能把功劳都归于“深度学习”,例如:用于保护深度神经网络避免过拟合的Dropout技术实际是一种贝叶斯学习方法,用于AlphaGO的深度神经网络需要在强化学习框架下发挥作用等 但是,每种方法都有优点和缺点,学术界和工业界都需要鼓励多样性。 比如:数据驱动的方法(如深度学习)往往需要大量的训练数据,而知识驱动的方法(如贝叶斯方法)可以在小样本下进行有效学习,二者具有互补的优势,它们的有机融合是当前的一个热点。

    777100

    目标检测的传统方法概述

    目标检测已经进入深度学习时代,但是传统方法还是有必要了解下,深度学习方法的思想也来源于传统方法传统方法的文献非常多[9],但只需要了解三个里程碑式的方法就可以了,分别是Viola Jones Detectors 下面简要介绍这三种方法,更深入的理解见查看参考文献。一、Viola Jones Detectors2001年,P. Viola和M. 主要采用的技术为:积分图像:积分图像是一种加速盒滤波或卷积过程的计算方法。与当时的其他目标检测算法一样,在VJ检测器中使用Haar小波作为图像的特征表示。 三、Deformable Part-based Model (DPM)DPM作为VOC-07、-08、-09检测挑战的优胜者,是传统目标检测方法的巅峰。DPM最初是由P. 该方法不需要手动指定零件滤波器的配置(如尺寸和位置),而是在DPM中开发了一种弱监督学习方法,所有零件滤波器的配置都可以作为潜在变量自动学习。R.

    5K50

    传统相机标定方法解析

    在直接线性标定方法中,并没有考虑相机镜头的非线性畸变,而在Tsai提出的两步标定法中很好的解决了这个问题。相关理论推导如下: 1、相机畸变模型 在前一篇文章中有提到,应该比较好理解。 ? 利用像机畸变模型建立约束方程 确定优化目标函数 以非线性优化方法求解 缺点: 优化程序计算复杂,速度慢 标定的结果取决于初始值 8、两步标定法正式开始 求: 方法:非线性优化 确定初始值: k1=0, dv=1 忽略非线性畸变,求解fv和tz ? ? 14、U0,V0的标定 直接光学方法 变焦距法 径向排列约束法 直接光学法 用一束激光照射像机镜头 在光路上放一张有孔的纸 使激光的入射光线与反射光线重合 用像机摄取包含激光光斑的图象 利用共面标定板,取zwi=0 非线性优化求解 15、小小总结一下: 前面标定方法共性: 已知特征点二维图像坐标与三维空间坐标 需要标定参照物 统称:传统标定方法 优点:适用任意摄像机模型

    88110

    ——现代软件开发方法

    开发云原生应用通常包括devops,敏捷方法论,微服务,云平台,容器(例如Kubernetes和Docker),CD(持续交付),简而言之,是每种现代应用部署方法。 云原生应用和本地应用的区别 相较于传统企业应用,开发云原生应用需要一个非常不同的架构。 语言 如果应用部署在Windows服务器平台上,运行在服务器上的本地应用更倾向于使用传统语言编写,例如C/C++,C#或者其他Visual Studio支持的语言或者企业级Java。 你还需要抛弃旧的开发人员方法。瀑布模型肯定不能使用了,甚至敏捷开发都不够用。 所有这些都意味着一个新的做事方式,意味着你在学习新的方法时打破旧的习惯。因此,请以一定的速度进行。

    1.5K70

    软件开发工作量的估算方法

    而且我个人觉得软件工作量与软件规模是不等的,规模是指大小是固定的,而一个软件开发的工作量与许多因素有关,如公司的效率啊,参与开发人员的编程水平等。 根据估算角度的不同,间接法又分为基于代码行(SLOC)的工作量估算方法和基于功能点(FP)的工作量估算方法。。 1、基于WBS的工作量估算 基于WBS的工作量估算方法,是最常见的一种估算方法,也是厂商最常用的。 代码行数是软件开发者最早进行规模测量的主要方法。进行工作量估算时,先采用WBS法、类比法等统计出软件项目的代码行数,然后将代码行数转换为人天数。 COCOMOⅡ模型 COCOMOⅡ模型指出,软件开发工作量与软件规模呈指数关系,并且工作量受16个成本驱动因子的影响。

    4.8K11

    软件开发项目开发成本估算方法

    但是公司内部申报项目或者对外申报扶持资金成本的估算又是非常重要的一个环节,所以下面给大家介绍一下开发项目成本的常用成本估算方法。 (目前,有三种基本的软件项目成本估算方法:自顶向下、自底向上和差别估算法。 自顶向下的方法是对整个项目的总开发时间和总工作量做出估算,然后把它们按阶段、步骤和工作单元进行分配;自底向上的方法是分别估算个工作单元所需的开发时间,然后汇总得出总的工作量和开发时间;差别估算是将开发项目与一个或多个已完成的类似项目进行比较 掌握软件项目成本估算方法是走向管理岗位的一个重要技能,是向上管理、对外管理的一个敲门砖,值得大家学习。

    8.4K20

    敏捷软件开发 原则_敏捷方法

    传统的瀑布式开发 瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。 有论文统计他是造成70%软件开发失败的原因。 大体分为这几个阶段:需求分析、设计、编码、测试、维护。 瀑布模型 传统和敏捷开发比较 什么是敏捷开发 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。 ISP 接口隔离原则 不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。 敏捷开发方法框架 Scrum 极限编程(XP) 其中,Scrum是使用最普遍的敏捷开发方法框架。 Scrum Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发

    19430

    如何从传统软件开发顺利过渡到互联网技术开发

    今天来说一个比较普适性的问题:如何从传统软件开发转到互联网技术开发,这也是不少朋友问过我的问题,特整理一篇文章出来分享给大家。 软件无所谓传统与新兴,只不过面向市场的不同,导致大家心里有个对比。 何谓传统软件开发,可能更多的与企业内部应用挂钩,采用项目制,人员对项目负责,面向B端用户,用户规模小,业务场景特定,迭代升级频率小,技术实现复试度较互联网应用低。 有一个词与传统软件开发走的比较近: 外包。所谓铁打的项目,流水的码农,外包人员的流动性是最大的。 那为什么要跳出传统软件开发,去做互联网研发呢?说到底还是生存与发展的问题。 互联网研发更多的趋向于产品研发,开发模式抛弃传统软件开发过程中的瀑布模型,更多的采用敏捷模式,KANBAN、SCRUM等,读一下敏捷宣言似乎来的更直观一下。 其实方法总比困难多,去找从事过相关工作的同学\亲戚\朋友\前同事\网友去聊聊天,到知乎\Google\微博\博客\公众号看别人的总结,参加相关的线上线下活动等等,如果以上都不行的话就来找我吧。

    12320

    基于传统方法的单目深度估计

    如果想要深入学习单目深度估计方面的知识,可以关注我们工坊推出的课程: 单目深度估计方法:算法梳理与代码实现 单目深度估计一直以来都是计算机视觉领域中的一项非常具有挑战的难题。 随着计算机技术、数字图像处理算法和深度学习等技术的发展,常用的单目深度估计算法大概可以分为以下几类:基于线索的和机器学习的传统方法、基于有监督的深度学习方法和基于无监督的深度学习方法。 今天和大家重点介绍一下三个传统方法的基本原理,包括:马尔科夫随机场(Markov random field, MRF)、运动恢复结构(Structure from motion, SFM)、阴影恢复形状 ,是三维重建中的一种常见方法,也是深度学习之前深度估计的经典方法。 3、阴影恢复形状(SFS) Shape From Shading是一种从单幅图像中计算一个表面三维形状的方法

    74030

    传统方法到深度学习,人脸关键点检测方法综述

    人脸关键点检测方法大致分为三种,分别是基 ASM(Active Shape Model)[1] 和 AAM (Active Appearnce Model)[2,3] 的传统方法;基于级联形状回归的方法 传统人脸关键点检测数据库为室内环境下采集的数据库,比如 Multi-pie、Feret、Frgc、AR、BioID 等人脸数据库。 Level-1 与 Level-2 和 Level-3 还有一点不同之处在于,Level-1 采用的是局部权值共享(Lcally Sharing Weights),作者认为传统的全局权值共享是考虑到,某一特征可能在图像中任何位置出现 在传统 MLT 中,各任务重要程度是一致的,其目标方程如下: 其中,表示与权值矩阵相乘之后输入到函数,表示损失函数,是正则项。 为了提升网络性能,需要挑选出困难样本(Hard Sample),传统方法是通过研究训练好的模型进行挑选,而本文提出一种能在训练过程中进行挑选困难的在线挑选方法

    2.3K80

    选择软件开发方法时应注意的事项

    使用这些简单的东西可以帮助项目团队选择最适合软件开发方法。我们先看看选择是什么。 软件开发方法的类型 当有这么多不同类型的软件开发方法可供选择时,这可能会被证明是一项不容易的任务。 瀑布式或传统软件开发方法 在过去,公司使用瀑布,这也被称为传统软件开发方法。瀑布式软件开发方法是一个很好的选择,当您确定了所有的因素,并且不期望在过程中需要任何更改时。 敏捷软件开发方法论 也许我们在软件开发中使用敏捷方法的最大原因是,当根据更传统的系统(如瀑布)工作时,业务需求没有得到足够快的响应。 与使用传统方法时有时几个月的时间相比,敏捷方法通常只在几周内提供新的功能。这使得企业能够更快地响应客户不断变化的需求。因此,在处理项目中频繁的更改时,您可能需要选择此方法。 极限编程软件开发方法 团队通常选择极限编程软件开发方法(XP),在这种方法中,项目的功能预计每隔几个月就要更改一次。有时唯一已知的常量是项目将不断变化。

    40100

    传统方法到深度学习,人脸关键点检测方法综述

    人脸关键点检测方法大致分为三种,分别是基 ASM(Active Shape Model)[1] 和 AAM (Active Appearnce Model)[2,3] 的传统方法;基于级联形状回归的方法 传统人脸关键点检测数据库为室内环境下采集的数据库,比如 Multi-pie、Feret、Frgc、AR、BioID 等人脸数据库。 Level-1 与 Level-2 和 Level-3 还有一点不同之处在于,Level-1 采用的是局部权值共享(Lcally Sharing Weights),作者认为传统的全局权值共享是考虑到,某一特征可能在图像中任何位置出现 在传统 MLT 中,各任务重要程度是一致的,其目标方程如下: argmin{W}Tt=1∑t=1T∑i=1Nζ(yti,f(xti;wt))+ϕwt argmin_{\left\{ W\right 其中:j∈{det,box,landmarks}j\in\left\{ det,box,landmarks\right\},为了提升网络性能,需要挑选出困难样本(Hard Sample),传统方法是通过研究训练好的模型进行挑选

    97030

    传统方法到深度学习,人脸关键点检测方法综述

    人脸关键点检测方法大致分为三种,分别是基 ASM(Active Shape Model)[1] 和 AAM (Active Appearnce Model)[2,3] 的传统方法;基于级联形状回归的方法 传统人脸关键点检测数据库为室内环境下采集的数据库,比如 Multi-pie、Feret、Frgc、AR、BioID 等人脸数据库。 Level-1 与 Level-2 和 Level-3 还有一点不同之处在于,Level-1 采用的是局部权值共享(Lcally Sharing Weights),作者认为传统的全局权值共享是考虑到,某一特征可能在图像中任何位置出现 在传统 MLT 中,各任务重要程度是一致的,其目标方程如下: ? 其中, ? 表示与权值矩阵 ? 相乘之后输入到函数 ? , ? 表示损失函数, ? 是正则项。 为了提升网络性能,需要挑选出困难样本(Hard Sample),传统方法是通过研究训练好的模型进行挑选,而本文提出一种能在训练过程中进行挑选困难的在线挑选方法

    1.2K50

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • CODING DevOps

      CODING DevOps

      CODING DevOps 包括代码托管、项目管理、测试管理、持续集成、制品库、持续部署等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券