[新人求助]总是把问题想复杂怎么办

runerback 2016-06-20 01:04:03
是不是应该放下技术多看看软件工程之类的东西?

当然,我会举个栗子的,这几天请假复习考试,大一挂到大四的高数一考完,哪里还看得进去书啊

(题外话,首先我还是要吐槽一下老板整天让我看他们以前的旧代码然后写xslt做数据交换,半年了,需求嘛搞不清楚让我自己看还要写文档,旧项目嘛据说是以前用打孔写代码的人用vb写的,那叫一个绕啊。有了需求我特么只要半天就能写好xslt,作为新手我想请教下各位我特么是不是被“忽悠”了。)不就是因为让我做几个简单的界面我做了三个月嘛!后来我找到原因了,据说叫做"Analysis Paralysis"

我经常写一些小工具让电脑代替我思考,比如和我的问题有关的例子:
某游戏由于汉化组的技术原因,有些汉字在游戏里不会被显示出来。当时别人都不知道怎么让通过任务编辑器做出的任务在游戏中输出汉字,而我在某个暑假自己鼓捣出来了,然后就发现前面说的“不全”问题。于是我花了一星期时间测试了所有的汉字并记录下来。当时并不咋会写代码所以就放着。后来实习了段时间之后就用WinForm做了个“简单”的小程序,标出输入的字符中哪些是游戏中无法显示的:

一直觉得随便写的这个简单的WinForm程序很“辣鸡”,正好换了家公司学了WPF,就打算重新写。于是看了眼WinForm程序,十分简单但是想改就无处下手了,里面用了WinAPI以及GDI的东西,估计都是百度来的因为完全看不懂在干啥,乱七八糟的。。

然后动手开始写,今天是第三天,除去看高数和考高数的时间,所花时间其实并不多。我就不说具体代码了,确实也没啥好说的。界面还没改,转换成游戏里识别的代码部分也没做,cpu占用率到了25%,感觉已经无法继续做下去了

看了段时间“汇编逆向爆破”的东西,感觉“疑心”更重了。
游戏里能显示的字符都放在一个硬编码的List里面,每次读取时,如果本地文件不存在,就通过编码、改变次序、压缩等手法进行“加密”,然后存到本地;否则直接读取本地文件。之后进行“解密”,折腾了这么多之后总算把数据放到内存里了。。。
然后处理输入的内容,遍历每个输入的字符,如果该字符不存在于之前读的那个字符列表中,就将它的索引号放到列表中。
然后,遍历这个列表,生成另一个列表,里面放了不存在的连续字符的首位索引和连续的长度,然后再遍历它得到由游戏里显示的和不显示的字符串组成的列表,然后再生成标记过的单个字符组成的列表。

这么一通折腾之后,我得到了下面结构的一个列表:

public class SingleChar
{
public int Index { get; set; }

public bool Marked { get; set; }//true表示游戏里无法显示,需要标记出来给用户看

public char Data { get; set; }
}

Finally……其实我是不知道怎么在不直接使用之前用过的那些GDI和WinAPI的情况下实现同样的效果,同时,我以为wpf是万能的。于是我就想将用户输入分为一个个字符,然后我根据这些字符生成不同的TextBlock控件,同时为了能到达末尾自动换行(就像真的TextBox里的换行一样的效果)而使用了能自动换行的WrapPanel。
总之目前的效果:

可是每当文本框里发生改变时以上过程(除了加载原始数据)就要重新来一遍,妥妥的cpu不高才有鬼啊,最高的就是创建TextBlock控件并呈现给用户的那块但又不想用按钮点击那种很“Low”的传统方法。

于是我想,要不给TextBox加一个状态变化的判断吧,判断用户是删了某几个字还是在原有基础上继续加了几个字还是插入了几个字还是全删了重写还是全选粘贴,于是我想应该加一个用户行为分析,然后在原有的代码上做判断再执行这样就能少执行很多东西了。然后我再一想,用户行为分析。算了不做了有空再说吧以前的WinForm写的那个挺好用的

求大神给几个书名我去好好看看。
...全文
273 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
runerback 2016-06-29
  • 打赏
  • 举报
回复
这也就是我为啥发在非技术区的原因。毕竟你们都是正规程序员,是吧
  • 打赏
  • 举报
回复
还是像我一样,有空翻翻基础书,条理清晰点,没坏处
  • 打赏
  • 举报
回复
基本上,这样说吧,一个雷早晚会炸,一个赌徒早晚会被人砍,一只鸡早晚会被人手撕。要做一个“普通人”然后再成为一个专业开发人员,就要按照正道来走。所谓猫有猫道、狗有狗道,而程序员则有程序员之道。如你狂热地喜爱程序员这个外表光鲜的称呼,这也是小公司的悲剧,因为那种小公司看上你的就在于你的短处。
圣殿骑士18 2016-06-23
  • 打赏
  • 举报
回复
楼主火星来的
wanghui0380 2016-06-20
  • 打赏
  • 举报
回复
实在没看懂要表达什么?我觉得你可以看看PE文件分析,看看什么是代码段,什么是数据段,什么是资源,什么是资源文件。 至于最后一个问题为啥不是失去焦点在说
cheng2005 2016-06-20
  • 打赏
  • 举报
回复
写了一大堆不知道楼主想说什么,说实话,良好的表达和沟通能力是非常重要的,除非你是技术大牛,不然你表达不行也做不到什么好位置。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧