首页 > 其他分享 >【教程】React-Native代码规范与加固详解

【教程】React-Native代码规范与加固详解

时间:2024-01-19 10:56:56浏览次数:34  
标签:注释 代码 规范 React 详解 加固 Native

引言

React Native 是一种跨平台的移动应用开发框架,由 Facebook 推出。它可以让我们使用 JavaScript 和 React 语法编写原生应用,大大提高了移动应用的开发效率。但是,对于开发人员来说,代码规范和安全性也是非常重要的问题。本篇博客将为大家详细介绍 React Native 的代码规范和加固方法。

在这里插入图片描述

 

编程规范

变量规范

  • 变量命名需采用lowerCamelCase驼峰命名的方式,第一个字母必须小写。

  • 命名严禁使用拼音或者是拼音与英文混合的方式,避免歧义。

  • 数组或者对象变量,需明确指出其类型。

  • 常量的命名全部采用大写,单词与单词之间采用下划线进行分割。

函数规范

  • 方法、函数一律使用ES6中箭头函数的声明方式。

  • 方法名、函数名一律采用lowerCamelCase驼峰命名的方式,第一个字母必须小写。

  • 类名使用UpperCamelCase驼峰命名的方式,第一个字母必须大写。

组件规范

  • JSX中的方法,超过一行必须写成一个新的函数。

  • 组件嵌套时,子组件与父组件要有2个空格的缩进。

  • 组件需要设置样式的时候,如果只有一个样式可以用内联的方式写在JSX内,如果两个以上必须使用StyleSheet创建样式。

  • 自定义组件命名的时候,用UpperCamelCase命名。

  • 无状态的组件,请继承自PureComponent而不是Component。

格式规范

  • 关键字左右需加空格,如if/for/else等关键字。

  • 任何运算符左右必须都有一个空格,包括赋值、逻辑运算符、加减乘除等。

  • 单行字符数不超过120个(可在eslint中设置)超过的字符需要换行。

  • 方法参数在传入的时候,多个参数逗号前必须加括号。

  • 合理使用空格,将不同功能或者是不同业务逻辑的方法分开。

条件语句规范

  • 简单的if/else逻辑判断,请使用三目运算符。

  • 逻辑判断请勿超过三层,如果超过了请重新思考代码逻辑。或者使用switch。

  • 在一个 switch 块内,每个case要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止。

注释规范

  • 变量或者是属性,可以在后面使用单行注释来说明这个变量或者属性的用途。

  • 类、类方法的注释不得使用//单行注释,必须使用/**/的多行注释。方法中如果需要传入参数,或者是有返回值,请在注释中详细写出。

  • 逻辑代码中需要注释出逻辑流程。

  • 注释掉的代码,如果不再使用请尽快删除,以免给后续维护人员带来麻烦。如果只是暂时注释,请说明注释原因。

文件规范

  • 文件命名遵循lowerCamelCase方式命名。如果是某一个平台特有的文件,可以加上ios或者android的后缀作为区分。

  • 文件开头需写明该文件作用、作者以及创建时间。

ESLint安装指南

ESLint是一种JavaScript语言的代码规范和风格检查工具。安装ESLint可以使我们编写的代码更加规范化、易于维护。以下是ESLint的安装指南:

  1. 在项目的根目录中运行以下命令安装eslint-config-airbnb模块:

  (
    export PKG=eslint-config-airbnb;
    npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
  )
  1. 安装babel-eslint模块,并创建.eslintrc文件。在.eslintrc文件中可以写入自己的代码规则。

所有的规则可以在ESLint规则中查看,然后根据你的要求写到rules下。

加固混淆

为了保护React Native应用程序不被攻击者攻击,我们需要进行代码混淆和加固操作。以下是一些常见的加固混淆方法:

  • 使用iPAGuard等工具进行IPA重签名

在这里插入图片描述
  •  

  • 使用iPAGuardr对JavaScript代码进行混淆,只要是ipa都可以,不限制OC,Swift,Flutter,React Native,H5类app。可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。

在这里插入图片描述

以上是一些常见的加固混淆方法,我们可以根据实际情况选择合适的方法来加固我们的React Native应用程序。

总结

本篇博客详细介绍了React Native的代码规范和加固方法。通过遵守代码规范,可以让我们编写的代码更加规范化、易于维护。而加固混淆可以保护我们的React Native应用程序不被攻击者攻击,提高应用的安全性。希望这篇博客能够对大家有所帮助。

参考资料

标签:注释,代码,规范,React,详解,加固,Native
From: https://www.cnblogs.com/gddg/p/17974149

相关文章

  • Nginx基础配置详解(main、events、http、server、location)
    Nginx基础配置详解(main、events、http、server、location):https://blog.csdn.net/weixin_43834401/article/details/130562289?ops_request_misc=&request_id=&biz_id=102&utm_term=nginx%20server%20%E7%9A%84%E6%A0%B9%E7%9B%AE%E5%BD%95&utm_medium=distribute.pc_......
  • 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)
    Adam优化算法在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多少有些质疑全新的优化算法,很多人都觉得动量(Momentum)梯度下降法很好用,很难再想出更好......
  • React(千锋)
    目录React18新增特性一.React18介绍1.新的项目创建2.老的项目升级二.RenderAPI三.自动批量更新State1.setTimeout2.promise3.原生事件4.flushSync四.ConcurrentMode(并发模式)1.useTransition2.useDeferredValue五.严格模式(mutedcolors)六.Suspense组件的变化1.版本......
  • Day53 Super(继承核心关键词)详解
    Super(继承核心关键词)详解Super注意点:​1.super调用父类的构造方法,必须在构造方法的第一个​2.super只能出现在子类的方法或者构造方法中!​3.super和this不能同时调用构造方法!(因为二者都要放在构造器的第一个无法实现)​4.superVSth......
  • k8s探针详解
    一、探针类型Kubernetes(k8s)中的探针是一种健康检查机制,用于监测Pod内容器的运行状况。主要包括以下三种类型的探针:1、存活探针(LivenessProbe)2、就绪探针(ReadinessProbe)3、启动探针(StartupProbe)(自1.16版本引入)二、探针功能1、启动探针(StartupProbe)Kubernetes......
  • logback-spring.xml 的配置及详解(直接复制粘贴可用)
    一、注意实现logback-spring.xml中有三处需要根据实际业务进行修改,直接查找“(根据业务修改)”即可进行定位。如果不想修改,直接复制粘贴到自己系统运行也可以,不会报错。二、配置及详解application.yml配置#日志配置logging:config:classpath:logback-spring.xmllogba......
  • 克魔助手工具详解、数据包抓取分析、使用教程
    摘要本文介绍了克魔助手工具的界面和功能,包括数据包的捕获和分析,以及抓包过滤器的使用方法。同时提供了一些代码案例演示,帮助读者更好地理解和使用该工具。引言克魔助手是一款功能强大的网络抓包工具,可以帮助开发人员进行网络数据包的捕获和分析。它提供了直观的界面和丰富的功......
  • Java里static的详解类变量
    没有修饰的是普通变量,用static修饰的变量成为类变量,一个成员变量a,一个类变量b。可以看到,a是成员变量,b是类变量,当我们对指定对象改变成员变量时,只会改变当前对象的成员值,text2.a并无变化,这表明他们是独立的。当我们改变类变量的值时,输出不同对象的类变量时,发现它们都改变了,这很......
  • Unity3D代码混淆方案详解
    背景Unity引擎使用Mono运行时,而C#语言易受反编译影响,存在代码泄露风险。本文通过《QQ乐团》项目实践,提出一种适用于Unity引擎的代码混淆方案,以保护代码逻辑。 引言在Unity引擎下,为了防止代码被轻易反编译,需要采取相应的保护措施。本文将分享一种基于实践经验的可行方案,希望......
  • JavaScript到底应不应该加分号?JavaScript自动插入分号规则详解
    JavaScript提供了automaticsemicoloninsertion(ASI)自动插入分号规则,在不加分号的情况下,会自动补充分号来分隔不同语句。导致在继左大括号换行、tab和space圣战后,前端又出现了一场战争。并且随着那个男人加入这场讨论之后,关于是否应该加分号的讨论更是激烈了。ASI自......