开发中难以解决的问题,你是如何另辟蹊径的

2023-12-22 13:30

本文主要是介绍开发中难以解决的问题,你是如何另辟蹊径的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hello,各位铁铁,五一假期,咱们不聊技术,今天侃一侃一个实际开发中的问题,那就是,在以往的开发中,你遇到过难以解决的问题吗?或者咱们换个角度,面对产品经理提过来的,很难实现的需求,你是怎么处理的?又或者自己在研发某个功能时,遇到障碍,又是如何解决的?

面对此类的问题,如果老铁你自始至终都没遇到过,我只有羡慕的份,别的没有,羡慕的可能是你的手上技术,也可能是你的口上技术,也就是,要么小菜一碟的实现,要么也是小菜一碟的回怼产品经理,实现不了,无法实现,总之,你的过人技术,肯定着实膜拜。

 

像对于我而言,就显得平平奇奇,每次的项目,公司的也好,自己的也好,几乎每次都有几个小挫折,都需要花费一些时间来调研,来解决,而面对产品经理提出的需求,除了顺从,还有服从,所以,基本上,很少拒绝,一是面子,二是也想挑战一下未知技术,所以大部分我的处理方式是,双手接纳,统统揽入怀中,经历了如此之多,也慢慢的晓得了一些另辟蹊径之方法,确实,很多符合实际又难以实现的功能,真的有其他的解决办法。

记得刚参加工作,也就是8年前,有一个需求,要实现顶部Banner和下面的列表进行联动下拉刷新,初入职场的我,纯小白一个,这就是一个很复杂的功能,也许回过头来只能嘲笑过去的自己,但谁不是一步一步的走过来的,是吧?当时的自己,头也很大,怎么搞,一点思路都没有,去网上搜,也不知道搜什么,真的不会搜,一点都不夸张,你刚接触一门语言,所谓的认知真的是很匮乏。

下面是ListView,上面是Banner,两个控件怎么联动到一起,当时自己就陷入到了,怎么用另一个控件包裹住它俩,但是怎么也没实现;如此简单的问题,在当时,却成了难以解决的问题,东搜搜,西搜搜,慢慢摸索,才发现,把顶部的Banner当做ListView的头View,就解决了,确实,绕了很大一圈,才发现,这样的功能,人家自身都存在。很多时候,本身的局限就限制了它简单的实现,你觉得它难,其实它就你眼前,很多这样的功能,确实需要另辟蹊径的从根本发现,而不是无限的发掘。

再说一个最近开发中的问题,我们都知道Jetpack中有一个组件navigation,一个导航的库,通过可视化的方式来管理Fragment的切换,当前的项目,就是使用它作为了底部的tab切换,但随之而来的一个问题就来了,每次点击底部tab,当前的Fragment就会重新加载,这种效果,肯定是不符合实际需求的,那么怎么去解决它呢?此时的另辟蹊径,没有别的办法,只能去查看里面的源码,通过源码,才发现Fragment的切换是通过replace方式来切换的,并且加入回退栈,也就是说每次切换Fragment,都会销毁视图和重新创建视图,找到了原因之后,重新创建继承类,修改导致错误的方法,做针对性的解决。此时的问题,如果你还想用它,只能花费心思去钻研它,其它的别无他法,除非你不用它。

实际开发中的问题,我相信很多都需要另辟蹊径,说是另辟蹊径,不如说是寻找解决的方法,再说一个自己之前遇到的小程序问题,真的才是另辟蹊径,因为遇到了问题太多了,多的差点自己的小程序就阉割了。

还记得当微信小程序推出来之后,自己也加入了开发阵营,但随之而来的一个问题是,数据从哪里来?又是如何渲染出来?也许对于一个企业,或者说一个团队而言,这些都是微不足道的小问题,但是对于一个个人开发者而言,确确实实是要面对的问题,如果在2017年,你打算要做一个知识技术分享的小程序,你该如何进行呢?

买服务器,买域名,买证书,找人或者自己开发一套接口,然后自己根据接口,按照小程序语法来研发属于自己的功能,ok,当然是可以的,问题又来了,小程序不支持个人webview, 一直到现在,仍然未对个人开放,针对此问题,你的页面内容如何动态展示呢?注册个公司吗?因为一个小程序,又是买服务器,又是开公司,你觉得划算吗?是你,在2017年,你该如何解决?

 

种种的问题,都是阻碍一个想要开发小程序的开发者,特别是一个个人开发者,一个想免费做一个小程序的开发者,也许旁人遇到这样的问题,就直接退缩了,但我不一样啊,我是杠头啊,越是阻碍,越要另辟蹊径的去找到解决方式。

确确实实,在2017年,这些都是阻碍自己开发小程序的前提,我的数据从哪里来,又是如何进行渲染到页面上呢?把内容和资源直接打包到小程序里?肯定不行,一是数据无法动态更新,二是小程序也有大小限制,当时打包体积是2M,此方法行不通,转而探索其他方式。

当时我的想法是,我只是做一个知识技术分享的平台,并不涉及到交互,是不是找一个静态文件托管的平台,也可以呢?当时也是说干就干,我把一些数据,写成了一个一个的静态txt文件,写好之后,就搜索一些免费的服务器,放上去确实可以动态获取,但免费的终归是免费,很不稳定,还有正式的打包上线,必须是https,免费的都是http,显然这个是无法满足的。

兜兜转转,盯上了github,我们都知道github可以实现一个静态的网站,同样也可以托管一些文件资源,并且还是https的,真的是十分符合,小程序的第一版,就全部托管到了github。虽然解决了文件托管的难题,但是github毕竟是国外的,国内有时访问也不稳定,最后盯上了阿里云code,以后的版本,所有的静态文件和图片,都托管到了阿里云code,访问既快也很稳定。

从此静态文件的难题是解决了,但是图文并茂的文章,如何展示呢?毕竟个人小程序是不支持webview的,把文章做成一个一个的图片,然后,放到静态文件里,每个页面进行请求加载图片?方式是可以,但是图片资源有时太多,而且加载图片过大,有加载的过程,而且也耗费流量,对用户也不友好。

后续针对文章的展示,自己耗费了大量的时间去研究,如何快速的实现一篇图文并茂的文章,在小程序里能够友好的展示,最终定了一套方案,就是,把文章转为一个静态的txt文件,也就是一个纯json,然后由小程序文章页面根据文章id来请求,把对应的Json转化为文章。

通过json的方式,根据类型动态的创建小程序标签来展示不同的内容,确实可以满足当下的需求,而且图文并茂,非常的符合,但是每篇的文章,如何生成对应的Json,文字样式和图片样式,如何更改呢,需要手动一段一段的复制吗?显然太耗费时间了,于是,接下来,根据文章的内容,做了一个动态转化json的可视化工具,如下图,通过这一列的操作,算是解决了个人开发者的一个阻碍项。

通过这种方式,有一个问题存在,那就是需要自己把文章内容及图片复制过来,虽然可视化的,但也稍稍耗时,既然市面上有富文本编辑器,为何不加以改造呢?无非生成的是html标签,把这些转化为小程序的标签不就行了,确实,这种想法是可行的,进而又加快了文章的json生成。

小程序接二连三的问题,如果不能有效的另辟蹊径,很难有这样的一个产品出炉,当然了,我说的免费的,个人开发者独自研发的,所以啊,老铁们,遇到问题,很多时候,需要我们别出心裁,不能执拗在一个点上,否则,真的是既付出了时间,也付出了精力,最后也难达到我们的期望。

上述简单的通过自身的三个小例子,阐述了一下自己面对难以解决问题的时候的处理方式,大家可以发现,面对问题的抉择,我一般都是先揽下,毕竟对于未知的世界,另辟蹊径,也许有可能的实现方案,无论是针对公司里的项目还是自己的项目,从来不会直接的放弃,也许会有很多困难,但真正的解决完这些问题后,你会发现,除了技术的提升,还有认知的提升

在开发中会遇到各式各样的问题,多多少少都会有一些难以解决的问题,当遇到这些问题的时候,不是一上来就say no,而是面对问题的本身,我们能否有进行处理的思路和看法,技术的本身不是狭隘的,不是拒绝的,而是发散的,创新的。

好了各位老铁,遇到难以解决的问题,你是如何解决的呢?

当然了,面对难以实现的需求还有困难的问题,有一个场景,领导问了你,你直接拒绝了说不能实现,解决不了,但偏偏别人实现了,解决了,这种情况下,你……

这篇关于开发中难以解决的问题,你是如何另辟蹊径的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524114

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模