写了十几年程序,今天才第一天知道什么是屎山代码

可以说,我确实没在工作中用过Javascript,因为我从未见过如此“厚颜无耻”的代码

我曾经也是学过2~3年,还是JQuery的年代,但应该确实没在实战中用过,否则我怎么会不记得写过这些屎山代码的???

(当年,第一个吃到螃蟹的,赚到第一桶金的是DICUZ,PHP的;真还不是写JAVASCRIPT的)

 一个看上去平平无奇,像模像样的类Js代码

代码1

            recipeSection.Add(recipeRow);//在上面套用 preset??:自己写的方法:VisualElementPresets.CreateStandardCategoryEditor(),作用是再套了个 MemberGroupControl()//就是用category 绘制ve.Add(new Label("Categories(强行套用Category 的[Inspector])").CenterContents());ve.Add(groupControl);//group == category ,就是用 categoriesCtl 做绘制。。。。。ve.Add(recipeSection);   return ve; 

 结果某一天。。。。。

要是,你只是想在Unity VisualElement UI 添加一个按钮 Button

代码1-1

            recipeSection.Add(recipeRow);//在上面套用 preset??:自己写的方法:VisualElementPresets.CreateStandardCategoryEditor(),作用是再套了个 MemberGroupControl()//就是用category 绘制ve.Add(new Label("Categories(强行套用Category 的[Inspector])").CenterContents());ve.Add(groupControl);//group == category ,就是用 categoriesCtl 做绘制。。。。。ve.Add(recipeSection);//在这"再添加一个操作按钮吧,测试GridView"));var testButton = new Button(() => {//这是一个构造函数??(不是,TMD这是一个clickEvent,不是构造函数。。。。)// 下面的{text = "xxxxx"},这个描述语言,TMD才是构造函数,就问你惊喜不惊喜,意外不意外???// 下面这么写C# 构造函数,也是有不少的。。。。。////////可以插入一万行代码,事实上 Init的代码就不会少。。。。}){ text = "测试GridView(ItemObjectEditor)" };//这里加的 text 描述。。。。ve.Add(testButton);return ve;

如果我什么都不说,一般人会不会看到这样的代码就给我扣帽子:“这样的代码,大牛写的真好啊,就是不同于常人,非常飘逸,肯定另有深意,简直的”

写JavaScript的都是什么人?面对这样的屎山代码,这些年,你们都是怎么过 的??

我好像曾经在2~3个团队,明令禁止这么写代码

而必须规范地写成如下:

但其实再多地外部规范,远不及代码本身底层规则 ,很快这些规范就不会被执行,也多此一举立规范,和立FLAG是差不多的逻辑,根本不要立FLAG

"//--------------------"

当然,我的文章都写很多废话的

看,这又是一句废话

就问你,烦不烦 

"//----------------------/"

"//----------------------// 又是一行废话,备注 //"

代码2

            recipeSection.Add(recipeRow);//在上面套用 preset??:自己写的方法:VisualElementPresets.CreateStandardCategoryEditor(),作用是再套了个 MemberGroupControl()//就是用category 绘制ve.Add(new Label("Categories(强行套用Category 的[Inspector])").CenterContents());ve.Add(groupControl);//group == category ,就是用 categoriesCtl 做绘制。。。。。ve.Add(recipeSection);//在这"再添加一个操作按钮吧,测试GridView"));var testButton = new Button(){ text = "测试GridView(ItemObjectEditor)" };//这里加的 text 描述。。。。testButton.addClick(OnClick);////写成EventWarpper(testButton).click += XXXX 都好//写多少行都行,都比较好//就是一行就是一个功能//是一行就行,重点不在于行数太多,而是每一行需要意义明确//千万不要学Json 无意义的括号这种 {  | =》 | });         ve.Add(testButton);return ve;//无论是调试,还是规范,还是可阅读性,还是编辑器friendly
//都比Javascript 要好
//而 Javascript 为什么越看越像屎山代码????
//这个世界上,其实没那么屎山代码
// 30%的JavaScript 容易产生屎山代码,而30%在比例用Js,这个比例就很恐怖了
//当然我不靠Js赚钱,所以怎么吐槽都行。。。。。
function OnClick(eve)
{}

//------------------ /

最终改成这样,是不是舒服很多???

代码2-final

            //。。。。。。。。。。recipeSection.Add(recipeRow);//在这"再添加一个操作按钮吧,测试GridView"));var testButton = new Button(testButtonClick);testButton.text = "测试GridView(ItemObjectEditor)";//这里加的 text 描述。。。。//在上面套用 preset??:自己写的方法:VisualElementPresets.CreateStandardCategoryEditor(),作用是再套了个 MemberGroupControl()//就是用category 绘制ve.Add(new Label("Categories(强行套用Category 的[Inspector])").CenterContents());ve.Add(groupControl);//group == category ,就是用 categoriesCtl 做绘制。。。。。ve.Add(recipeSection);//在这"再添加一个操作按钮 baabababa”ve.Add(testButton);return ve;}void testButtonClick(){ }

一个乱套,而崩坏的世界:

代码3

using System;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.UIElements;
using Object = UnityEngine.Object;namespace Polyperfect.Crafting.Edit
{public class OpenForEditManipulator : Clickable{/// <summary>/// ObjectEditWindow.cs 点击item事件;会创建一个 window/// </summary>/// <param name="getObject"></param>/// <param name="clickCount"></param>/// <param name="ve">这个 ve 会乱动,所以需要 refreshAction()兜底刷新</param>/// <param name="refreshAction"></param>public OpenForEditManipulator(System.Func<Object> getObject, int clickCount,VisualElement ve, Action<VisualElement,Object> refreshAction = null): base(() =>ObjectEditWindow.CreateForObject(getObject(), ve,refreshAction))//又是一个强行闭包{
//            UnityEngine.Debug.LogError("fffff click??");//一个点击,触发了15次。。。一个compile刷新 ,又执行了45次。。。。。//一共触发了60次。。。。//一共触发了60次。。。。//一共触发了60次。。。。//一共触发了60次。。。。.......//一共触发了60次。。。。.......//一共触发了60次。。。。..............//而且是多次触发。。。。//而且是多次触发。。。。//而且是多次触发。。。。//这是 一个构造函数,你敢想像//这是 一个构造函数,你敢想像//这是 一个构造函数,你敢想像activators.Clear();activators.Add(new ManipulatorActivationFilter {button = MouseButton.LeftMouse, clickCount = clickCount});}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/57235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片怎么转文字?11种好用的方法!

如何快速将图片的文字提取出来&#xff0c;可以大量节省手打的时间&#xff0c;无论是截图&#xff0c;或者批量提取照片文字&#xff0c;都经常需要这个操作&#xff01; 作为一名社畜&#xff0c;俺也经常用到各种图片转文字工具&#xff0c;今天通过测评12个主流的图片转文…

React Native 项目中使用 Expo Application Services (EAS) 进行多渠道打包

在 React Native 项目中使用 Expo Application Services (EAS) 进行多渠道打包&#xff0c;你可以利用 EAS Build 来构建你的应用。以下是一些关键步骤和配置&#xff1a; 安装 EAS CLI&#xff1a; 首先&#xff0c;你需要安装 EAS CLI 工具&#xff0c;以便在本地使用 EAS 的…

Linux例行性命令

1.单一执行的例行性工作at 单一执行的例行性工作&#xff1a;仅处理执行一次就结束了 at命令详解 ——命令格式&#xff1a; at [参数] [时间] -m 当任务完成之后&#xff0c;即使没有标准输出&#xff0c;将给用户发送邮件 -l atq的别名&#xff0c;可列出目前系…

面对AI算力需求激增,如何守护数据中心机房安全?

随着人工智能&#xff08;AI&#xff09;技术飞速发展&#xff0c;AI算力需求呈现爆发式增长&#xff0c;导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇&#xff0c;从提供稳定的电力供应、优化高密度的部署&#xff0c;到数据安全的隐私保护&…

OpenVLA-首个开源视觉语言动作大模型

官网&#xff1a;https://openvla.github.io/ 现在大模型已经卷到了机器人领域。 在视觉语言模型&#xff08;VLM&#xff09;的基础上&#xff0c; 加入机器人的动作&#xff08;Action) 这一模态&#xff0c; 视觉语言动作大模型&#xff08;VLA&#xff09;是目前大模型应用…

2024新手攻略:项目管理工具+PMP备考经验不容错过!

&#xff08;一&#xff09;热门工具大盘点 禅道是一款专注于软件开发项目管理的工具。它涵盖了项目管理的各个环节&#xff0c;包括需求管理、任务分配、缺陷跟踪等。禅道的优势在于其对软件开发流程的深入理解和支持&#xff0c;能够帮助开发团队更好地管理项目进度和质量。…

如何应对 Android 面试官 -> ANR 如何优化?线上 ANR 如何监控?

前言 本章主要围绕 ANR 如何监控以及优化&#xff1b; 基本概念 ANR(Android Not Responding) 是指应用程序未响应&#xff0c;Android 系统对于一些事件需要在一定的时间范围内完成&#xff0c;如果超过预订时间未能得到有效响应或者响应时间过长&#xff0c;都会造成 ANR。 …

91 VRRP负载局衡+主备切块 V2

实操四 负载均衡主备 VRRP&#xff08;虚拟路由冗余协议&#xff09;是一种网络协议&#xff0c;用于提高网络的可用性和冗余性。VRRP可以将多个路由设备组成一个虚拟路由器&#xff0c;当主路由设备故障时&#xff0c;自动切换到备用路由设备&#xff0c;从而实现高可用性。 …

Mamba学习笔记(2)—序列数据处理基础

文章目录 (1) RNN&#xff08;Recurrent Neural Networks&#xff09;基本原理代码定义 (2) SLTM (Long Short-Term Memory)基本原理代码定义 (3) GRU (Gated Recurrent Unit)基本原理代码定义 (4) Transformer&#xff08;☆☆☆Attention Is All You Need☆☆☆&#xff09;0…

OpenCloud7.9 安装docker

错误代码 failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try. http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/2/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 解决步骤&#xff1a; 1. 删除或禁用错…

【数据价值化】数据资产价值实现:入表、交易、融资和代运营

在当今数字化时代,数据已经成为企业最宝贵的资源之一。如何有效管理和利用数据资产,实现数据价值最大化,已成为众多企业面临的重要课题。本文将深入探讨实现数据资产价值的四种主要方式:入表、交易、融资和代运营。通过剖析这四种方式的内涵、流程、关键点以及优势和挑战,为企业…

vue前端开发框架的常见知识点和应用

Vue.js 是一个渐进式的前端框架&#xff0c;用于构建用户界面和单页面应用程序&#xff08;SPA&#xff09;。在开发过程中&#xff0c;有一些常见的知识点和应用场景非常重要。下面是对Vue.js的主要知识点和应用的详细说明&#xff1a; 一、基础知识点 1. Vue实例 Vue实例是…

nginx解决非人类使用http打开的443,解决网安漏扫时误扫443端口带来的问题

一、问题描述 正常访问https的站点时&#xff0c;使用网址https://www.baidu.com&#xff0c;但会有一种错误的访问请求http://www.baidu.com:443&#xff0c;一般都是非人类所为&#xff0c;如漏洞扫描工具&#xff0c;那么请求以后带来的后果是个错误页面 400 Bad Request T…

如何选择合适业务协作平台?—— 板栗看板给你答案

在当今快速发展的商业环境中&#xff0c;团队协作和项目管理变得越来越重要。业务协作平台作为一种工具&#xff0c;可以帮助团队成员进行有效的沟通、任务分配和进度跟踪。这些平台通常具备项目管理、文档共享、实时通讯等功能&#xff0c;以提高团队的工作效率和协作能力。 一…

AttributeError: ‘function‘ object has no attribute ‘decode‘

h5py版本过高&#xff0c;降低版本即可。 1.卸载h5py pip uninstall h5py 卸载后&#xff0c;查看h5py版本&#xff0c;显示这个代表卸载成功。 import h5py print(h5py.__version__) 2. 安装低版本的h5py<3.0.0 目前的版本有&#xff1a; 2.2.1, 2.3.0b1, 2.3.0, 2.3.1,…

如何看ip属于什么地址

在数字化时代&#xff0c;IP地址作为互联网通信的基石&#xff0c;扮演着至关重要的角色。无论是网络管理、安全防护&#xff0c;还是日常的网络访问&#xff0c;理解IP地址的性质和分类都是必不可少的技能。本文将深入探讨如何判断一个IP地址属于哪一类地址&#xff0c;并详细…

阿里云验证码短信发送服务搭建(flask)

参考&#xff1a;https://next.api.aliyun.com/api-tools/sdk/Dysmsapi?version2017-05-25&languagejava-async-tea&tabprimer-doc 我们需要思考验证服务一些要求&#xff1a; 1.验证码只能被验证一次&#xff0c;所以需要状态字段 2.验证码有失效时间&#xff0c;超…

内存屏障的奥秘:深入理解并掌握Java并发编程的底层优化

1. 什么是内存屏障&#xff08;Memory Barrier&#xff09;&#xff1f; 内存屏障&#xff08;Memory Barrier&#xff09;&#xff0c;也称为内存栅栏&#xff0c;是一种硬件级别的指令&#xff0c;用于控制CPU和编译器的指令重排序。它确保特定操作在多线程编程环境中不会被…

C++STL--------list

文章目录 一、list链表的使用1、迭代器2、头插、头删3、insert任意位置插入4、erase任意位置删除5、push_back 和 pop_back()6、emplace_back尾插7、swap交换链表8、reverse逆置9、merge归并10、unique去重11、remove删除指定的值12、splice把一个链表的结点转移个另一个链表13…

利用Spring Boot实现信息化教学平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理信息化在线教学平台的相关信息成为必然。开…