搞不定的问题能直接跟经理说:我搞不定吗?

chouto 2006-10-11 09:44:01
项目经理让我开发一个模块,很麻烦的,我按照自己的思路做出来了。他看了后跟我说了他的思路,然后让我改成他的思路,在他看来很简单的东西,我搞了N天了还是没搞定,关键他的思路我也清楚,但按照他的思路代码我无法实现,这个模块还很急,测试人员都在等着,因为这个影响了我最近的工作情绪。我今天想直接跟他说:按你这样的思路,我搞不定! 大家说我能这么说吗?对了,我是在试用期..
...全文
480 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
chouto 2006-10-12
  • 打赏
  • 举报
回复
大喜!!
问题总算搞定了!
多谢大家,如果没有大家我想我是不会解决的。

散分了。。
dashi 2006-10-11
  • 打赏
  • 举报
回复
> 那图我也会画,思路也很清晰,就是用代码不知道如何去实现 那就只能直说你只能做设计,不能做开发了
chouto 2006-10-11
  • 打赏
  • 举报
回复
谢谢shine333的忠告


我现在的问题是继续做下去还是跟他说我做不出来

如果继续做下去,我肯定还得跟他沟通,也耽误测试的时间,这个模块比较急

如果跟他说我做不出来,不知道结果会怎样
shine333 2006-10-11
  • 打赏
  • 举报
回复
>>技术只是实现的手段,我朋友说我们经理太专注技术。

我不知道为何他让你这样改。但是有一点,请记住,我们是一个团队,在参与同一个项目的开发,而且项目的开发有一定的规范,不能认为“实现了就可以了”。同样的需求,确实可能有不同的实现方式,有的一遇需求变更必须推倒重来,有的却只需花费很小的代价,甚至根本无需变更。此外,管理者们还有其他通盘的考虑,所以,在你有明确技术上的理由以自己的方式来实现,且能说服他之前,还是按照他的说法去做。

另外,给个忠告,即使自己技术再好,现夹起尾巴做人那么一段时间,观察一下,说不定,以后他们都为你马首是瞻也说不定呢
aaassd 2006-10-11
  • 打赏
  • 举报
回复
做这样的系统,技术还是很重要的。离开技术什么都是空谈
aaassd 2006-10-11
  • 打赏
  • 举报
回复
CoolSlob() ( )

你这个垃圾人,不要总copy别人的话。你真垃圾。
chouto 2006-10-11
  • 打赏
  • 举报
回复
郁闷的是程序里我只用了2个定时器,他让我换掉,要我自己写2个定时器(还好我写出来了)。
>>技术只是实现的手段,我朋友说我们经理太专注技术。
shine333 2006-10-11
  • 打赏
  • 举报
回复
> 那图我也会画,思路也很清晰,就是用代码不知道如何去实现
那就只能直说你只能做设计,不能做开发了
chouto 2006-10-11
  • 打赏
  • 举报
回复
贴段代码看看:
==========================
/// <summary>
/// 接收MCU主动发送的消息、解析、封装成对象消息发送给Session层
/// </summary>
protected override void process()
{
checkByteList();

#region 超时定时器

if(IS_RESPONSED == false) //没有响应
{
if(m_responsetimer.IsStart) //超时定时器已启动
{
if(m_counter < 3) //发送次数小于3
{
if(m_responsetimer.IsTimeOut) //超时
{
logger.Debug("\n响应已超时!");
m_responsetimer.Stop();
m_counter = 0;
IS_RESPONSED = true;
this.clearArray(ref m_data);
}
else
{
mc.Output = m_data;
Thread.Sleep(1000);
logger.Debug("\n重复发送指令 : [" + Utilities.ByteArrayToHexString(m_data) + "] "+m_counter+"次!");
m_counter++;
}
}
else //超过3次
{
m_counter = 0;
m_responsetimer.Stop();

MsgBox(0,"命令无应答!","提醒",0);//

logger.Debug("定时器已停止!");
IS_RESPONSED = true;
}
}
}

#endregion
}


private void checkByteList()
{
byte[] t_byte = new byte[11];

int j = 0;

if(m_bytelist.Count == 0) //如果没有数据达到
{
return;
}
else
{
for(int i=0;i<m_bytelist.Count;i++)
{
Monitor.Enter(m_bytelist);
t_byte[j] = (byte)m_bytelist[i];
Monitor.Exit(m_bytelist);

#region 判断帧头
if(t_byte[0] == 0x82) //判断帧头
{
#region 判断长度
if(j==10) //判断长度
{
#region 判断帧尾
if(t_byte[10] == 0x83) //判断帧尾
{
#region 判断校验码是否正确
if(verifyCRC(t_byte)) //判断校验码是否正确
{
j = 0;
sendMail(t_byte); //发送消息给上层
logger.Debug("\n正确的"+m_name+"响应指令![" + Utilities.ByteArrayToHexString(t_byte) +"]");
this.clearArray(ref t_byte);
this.clearArray(ref m_data);
m_bytelist.RemoveRange(0,11);

if(m_responsetimer.IsStart) //如果超时定时器启动,接收到消息后将定时器关闭
{
m_counter = 0;
m_responsetimer.Stop(); //关闭超时定时器
IS_RESPONSED = true; //标识指令已应答
}

if(t_time.IsStart) //如果分片定时器启动,接收到消息后将定时器关闭
{
t_time.Stop(); //关闭分片定时器
}
}
else
{
j = 0;
logger.Debug("\n错误的"+m_name+"响应指令,校验码错误![" + Utilities.ByteArrayToHexString(t_byte) +"]");
this.clearArray(ref t_byte);
m_bytelist.RemoveRange(0,11);
}
#endregion
}
else //如果包尾不是以83开头,数据不合法,丢弃
{
j=0;
logger.Debug("\n错误的"+m_name+"响应指令,帧尾不合法 : [" + Utilities.ByteArrayToHexString(t_byte) + "] 已被丢弃! ");
this.clearArray(ref t_byte);
m_bytelist.RemoveRange(0,11);
}
#endregion
}
else
{
j++;

#region 分片定时器
/*if(m_isTimerStarted == false) //启动定时器
{
m_isTimerStarted = true;
m_timeArrive = false;
timer.Start();
logger.Debug("\n分片定时器已启动!");
}

if(m_timeArrive==true) //1秒后停止
{
j=0;
logger.Debug("\n不完整的"+m_name+"响应指令 : ["+Utilities.ByteArrayToHexString(t_byte) + "]");
this.clearArray(ref t_byte);
m_bytelist.RemoveRange(0,m_bytelist.Count);
IS_RESPONSED = true;
}*/
#endregion

/**************************************************************/
if(!t_time.IsStart)
{
t_time.Start();
t_time.Intenal = 5000;
logger.Debug("\n分片定时器已启动!");
}
else
{
if(t_time.IsTimeOut)
{
j=0;
logger.Debug("\n不完整的"+m_name+"响应指令 : ["+Utilities.ByteArrayToHexString(t_byte) + "]");
this.clearArray(ref t_byte);
m_bytelist.RemoveRange(0,m_bytelist.Count);
IS_RESPONSED = true;
t_time.Stop();
}
}
/**************************************************************/
}
#endregion
}
else //如果包头不是以82开头,数据不合法,丢弃
{
j=0;
logger.Debug("\n错误的"+m_name+"响应指令,帧头不合法 : [" + Utilities.ByteArrayToHexString(t_byte) + "] 已被丢弃! ");
this.clearArray(ref t_byte);
m_bytelist.RemoveRange(0,1);
}
#endregion
}
}
}
chouto 2006-10-11
  • 打赏
  • 举报
回复
项目经理挺忙的,我不能老是找他沟通吧
chouto 2006-10-11
  • 打赏
  • 举报
回复
我做的是串口编程,里面的流程挺复杂的,要判断的东西太多,因为我既要处理下位机主动发过来的数据,又要处理上位机主动发给下位机的数据,考虑分片超时,响应超时,重复发送...

他让我用2个状态机实现,一个是发送数据状态机,一个是接收数据状态机,给我画了个图,说实话那图我也会画,思路也很清晰,就是用代码不知道如何去实现。。
日总是我哥 2006-10-11
  • 打赏
  • 举报
回复
你们的思路差在哪里?你为什么稿不定?是技术问题,还是不是很理解他的思路。项目经理到你做完才让你改,失败。 沟通一下最好。
aaassd 2006-10-11
  • 打赏
  • 举报
回复
你们的思路差在哪里?你为什么稿不定?是技术问题,还是不是很理解他的思路。项目经理到你做完才让你改,失败。
沟通一下最好。
chouto 2006-10-11
  • 打赏
  • 举报
回复
如果我这样说,经理心里会怎么想?
我觉得我的代码写的也不是很烂,不知道他为什么要换成他说的那样
jihanzhong 2006-10-11
  • 打赏
  • 举报
回复
直说
chouto 2006-10-11
  • 打赏
  • 举报
回复
受教了,谢谢诸位!

刚刚跑到实验室把自己的程序测试了下,都没问题了,现在还是要来改。唉。。
lulu123ma 2006-10-11
  • 打赏
  • 举报
回复
不能直说,要不你就挂了(你还在试用期啊)。赶快出点血,在csdn上找个高手给你写出来,就当交学费吧!!

shine333(enihs) 说的有一定的道理,但最主要的是你要听上头的话(无论对错),并按头的思路把事情做好。很多人是要一个听说的下属而不是要一个有主见的高手!!所以听话并做事才是最重要的!
chouto 2006-10-11
  • 打赏
  • 举报
回复
— _ —
oxfordxyc 2006-10-11
  • 打赏
  • 举报
回复
直说
chouto 2006-10-11
  • 打赏
  • 举报
回复
对模式不太了解啊
加载更多回复(1)

23,407

社区成员

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

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