当前位置: 首页 > wzjs >正文

单页网站的制作深圳知名seo公司

单页网站的制作,深圳知名seo公司,哈尔滨排名seo公司,黑龙江省营商环境建设监督局网站欢迎来到啾啾的博客🐱,一个致力于构建完善的Java程序员知识体系的博客📚,记录学习的点滴,分享工作的思考、实用的技巧,偶尔分享一些杂谈💬。 欢迎评论交流,感谢您的阅读&#x1f604…

欢迎来到啾啾的博客🐱,一个致力于构建完善的Java程序员知识体系的博客📚,记录学习的点滴,分享工作的思考、实用的技巧,偶尔分享一些杂谈💬。
欢迎评论交流,感谢您的阅读😄。

目录

引言

命名——提炼含义减少注释

类名命名

接口与实现类的命名

方法命名的最佳实践

1. 方法名的结构

2. 参数与返回值的隐含

3. 避免缩写

4. 逻辑与副作用的体现

5. 条件判断方法

长命名处理——实战答疑

处理方法

1. 利用上下文环境简化名称

2. 使用领域术语或缩写

3. 拆分复杂逻辑为小模块

4. 使用组合命名结构

5. 保留核心信息,舍弃冗余修饰词

注意事项

总结原则


引言

从在大学机房里敲下Hello World那刻起,我踏入了编程的世界。

工作以来,不同的项目、不同的团队都带来有不同的编程规范,关于规范的注意事项是在太多太多,最后留在脑海里的只余下“可读性、可拓展性、设计原则”,让具体阐释一时间也说不出个所以然来。

哦,脑海里还余下了阅读、改动那些没遵守规范的代码时头疼的感觉。

为了消除这“头疼的感觉”,今天便系统整理一下代码规范,什么样的规范才是好的规范呢?

良好的命名规范能减轻工作负担。 —— 啾啾

先从命名开始。

命名——提炼含义减少注释

好的命名再怎么强调也不为过。

我们可能见过一些程序员,他们会为代码写上一大堆注释来说明这个方法做了什么。

可是事实上,“注释往往是最短命的代码”,注释本身有着不确定的一致性。

正确的做法是,提炼含义,使用描述明确的代码类、函数方法命名,好的代码注释应该解释“为什么”,而非“是什么”。(代码本身应该尽量自解释)

下面以一些Java基础类为例。

类名命名

先看一些Java源码示例。

类名含义解析
ArrayList基于数组(Array)的List实现
LinkedList基于链表(Linked)的List实现
TreeSet基于红黑树(Tree结构)的Set实现
SimpleDateFormat简单的日期格式化工具(Simple修饰核心功能DateFormat
FileInputStream基于文件(File)的输入流(InputStream)实现

类的命名上,要含义明确得体现实现方式或功能,避免模糊命名。

还有一种情况,即项目结构是Service、DAO、BO、VO这些,命名需要使用后缀体现层级关系。

类名含义解析
UserServiceImpl实现UserService接口的业务逻辑类
OrderDAO数据访问层(DAO)的订单操作类
ProductBO业务对象(Business Object),封装业务逻辑
CartVO视图对象(View Object),用于前端展示的数据模型

接口与实现类的命名

接口/抽象类实现类含义解析
ListArrayListLinkedList实现类通过后缀明确具体实现方式
MapHashMapTreeMapLinkedHashMap实现类通过后缀明确具体实现方式
CollectionArrayListHashSetPriorityQueue通过具体实现类名体现数据结构

方法命名的最佳实践

方法命名的核心原则是意图明确、参数隐含、无歧义。以下是具体示例和规则:

1. 方法名的结构

  • 动词 + 对象/动作:方法名以动词开头,描述操作内容。
    • ✅ addElement()(添加元素)
    • ✅ calculateTotalPrice()(计算总价)
    • ✅ saveToFile()(保存到文件)
    • ❌ process()(模糊,应具体化为processPayment()processRequest()

2. 参数与返回值的隐含

  • 通过方法名暗示参数和返回值的类型:
    • ✅ findUserById(String id)(隐含返回User对象)
    • ✅ getMaxValue(int[] numbers)(隐含返回最大值)
    • ❌ getSomething()(不明确返回值类型或用途)

3. 避免缩写

  • ❌ 缩写calc()(不明确)
  • ✅ 完整命名calculate()(清晰)

4. 逻辑与副作用的体现

  • 副作用:若方法有副作用(如修改状态),应在名称中体现:
    • ✅ updateCache()(明确修改缓存)
    • ✅ resetSettings()(明确重置设置)
    • ❌ doAction()(不明确副作用)

5. 条件判断方法

  • 布尔方法以ishascan开头:
    • ✅ isConnected()(判断是否连接)
    • ✅ hasPermission()(判断是否有权限)
    • ✅ canExecute()(判断是否可执行)

长命名处理——实战答疑

在命名时,偶尔会有业务复杂命名难以提炼的情况。

处理方法

可以通过以下策略在保持清晰性和可维护性的同时缩短名称:

1. 利用上下文环境简化名称

  • 类/模块上下文:在类或模块名中已体现的业务范围,方法名/变量名可省略重复信息。

    • 示例
// 类名已包含 "Transaction",方法名无需重复
public class TransactionProcessor {private void validateTransaction() { ... } // 可简化为 validate()private void calculateTotal() { ... } // 上下文已明确是交易总金额
}
  • 参数/返回值隐含:通过参数名或返回值类型暗示功能,减少名称冗余。

    • 示例
// 参数已明确是 "User",方法名无需重复
public void sendVerificationEmailToUser(User user) { ... }
// 可简化为
public void sendVerificationEmail(User user) { ... }

2. 使用领域术语或缩写

  • 领域术语:使用业务领域中的通用术语,减少冗余描述。

    • 示例
// 业务术语 "SubscriptionTier" 可直接使用
public double calculateDiscount(SubscriptionTier tier) { ... }
  • 合理缩写

    • 通用缩写:如 Tx(Transaction)、Svc(Service)、Mgr(Manager)。
    • 团队约定:确保团队对缩写达成一致(如 User 代替 UserAccount)。
    • 示例
// 原名称:calculateCustomerDiscountBasedOnSubscriptionTier
// 简化后:calculateDiscountByTier(假设Tier是业务术语)
public double calculateDiscountByTier(SubscriptionTier tier) { ... }

3. 拆分复杂逻辑为小模块

  • 方法拆分:将长方法拆分为多个职责单一的小方法,每个方法命名清晰。

    • 示例
// 原长方法:processOrderWithPaymentAndDelivery()
// 拆分后:
public void processOrder(Order order) {validateOrder(order);applyPayment(order);scheduleDelivery(order);
}
  • 类拆分:将复杂类拆分为多个子类或辅助类,通过组合提升可读性。

    • 示例
// 原类:OrderProcessorWithPaymentAndDelivery
// 拆分后:
public class OrderProcessor {private final PaymentProcessor paymentProcessor;private final DeliveryScheduler deliveryScheduler;// ...
}

4. 使用组合命名结构

  • Builder模式:通过链式调用或构建器减少参数名称的冗余。

    • 示例
// 原名称:createOrderWithCustomerAndItemsAndDiscount()
// 使用Builder模式:
Order order = new Order.Builder().setCustomer(customer).addItems(items).applyDiscount(discount).build();
  • 前缀/后缀模式:通过通用前缀或后缀表达功能,减少重复描述。

    • 示例
// 原名称:convertUserToUserDTO()
// 简化为:toDTO()
public UserDTO toDTO(User user) { ... }

5. 保留核心信息,舍弃冗余修饰词

  • 去除冗余动词:如 getprocesshandle 等,通过方法位置或参数推断功能。

    • 示例
// 原名称:handleUserRegistrationRequest()
// 简化为:registerUser()
public void registerUser(User user) { ... }
  • 聚焦核心业务:名称应体现“做什么”而非“如何做”。

    • 示例
// 原名称:calculateTotalPriceIncludingTaxAndDiscount()
// 简化为:calculateTotal()
// 通过注释或文档说明包含税和折扣

原始名称优化后策略
getCustomerInformationFromDatabaseUsingIdfindCustomerById()参数隐含(id)、领域术语(Customer
validateUserRegistrationFormAndSaveToDatabaseregisterUser()拆分方法,聚焦核心动作
TransactionProcessorForECommerceOrdersOrderTransactionProcessor上下文明确(ECommerce 是模块名)
calculateMonthlySubscriptionCostBasedOnPlanTypeAndUserTiercomputeSubscriptionCost()参数隐含(planTypeuserTier

注意事项

  1. 避免过度缩写:确保缩写在团队中统一且易懂(如 Svc 代表 Service,但 Svc 对新人可能不直观)。

  2. 保持一致性:同一项目中命名风格需统一(如是否使用 CamelCase 或 Snake_Case)。

  3. 注释补充:对于非常规缩写或复杂逻辑,可通过注释或文档说明。

  4. IDE辅助:利用 IDE 的自动补全功能(如 IntelliJ 的智能提示),减少长名称输入负

总结原则

  • 优先上下文:在类/模块/参数中已包含的信息,方法名/变量名可省略。

  • 领域术语优先:使用业务领域中的通用术语替代冗长描述。

  • 拆分优先:复杂逻辑拆分为小模块,每个模块命名清晰。

  • 可读性 > 简洁性:宁可稍长但明确,也不要过于晦涩的缩写。

http://www.dtcms.com/wzjs/48969.html

相关文章:

  • 山西网站建设搜狗seo怎么做
  • 县级政府门户网站建设历程百度推广点击一次多少钱
  • 微信上的微网站在哪里seo入门教程视频
  • j2ee 网站开发网站外链发布平台
  • 网站建设兼职招聘网站建设公司排行榜
  • 银川网站建设公司哪家好百青藤广告联盟
  • 婚纱摄影网站的设计长沙做网络推广公司的
  • 宇说建筑网站网络搜索关键词
  • 怎么做查真伪网站跨境电商关键词工具
  • 做网站用小动画域名查询入口
  • 网站怎么做充值系统下载seo网站建设公司
  • 网站开发工作流程seo综合查询是什么意思
  • google网站怎么做流量营销策略都有哪些
  • 洛阳房产网seo优化啥意思
  • php 网站做分享功能青岛seo博客
  • 怎样把网站做的漂亮网络推广是啥
  • 不知此网站枉做男人企业网络营销策划书范文
  • 自己做网站要不要钱微信营销方式
  • 网站界面设计的步骤怎样做产品推广
  • 网站建设年费足球排名最新排名世界
  • 乌鲁木齐住房和城乡建设委员会网站小红书软文推广
  • 做网站开发需要什么上海有实力的seo推广咨询
  • 微信网站开发教程厦门网站推广公司哪家好
  • 地产公司做网站维护写代码么爱站网反链查询
  • 网络营销外包公司靠谱吗上海排名优化推广工具
  • 网站主色调qq推广工具
  • 广东省建设厅投诉网站首页全网热搜关键词排行榜
  • 同一个域名可以做几个网站吗手机优化大师官方版
  • 建设在线教育网站seo专业课程
  • 网站项目策划书实例创建网站